mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-03 22:45:13 +08:00
修改tcp消息对外只暴露clientid
This commit is contained in:
@@ -1,66 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/duanhf2012/origin/originnode"
|
||||
"github.com/duanhf2012/origin/service"
|
||||
"github.com/duanhf2012/origin/sysservice/originhttp"
|
||||
"net/http"
|
||||
|
||||
)
|
||||
|
||||
type InputData struct {
|
||||
A1 int
|
||||
A2 int
|
||||
}
|
||||
|
||||
type SubNet1_Service1 struct {
|
||||
service.BaseService
|
||||
}
|
||||
|
||||
func init() {
|
||||
originnode.InitService(&SubNet1_Service1{})
|
||||
}
|
||||
|
||||
//OnInit ...
|
||||
func (ws *SubNet1_Service1) OnInit() error {
|
||||
originhttp.Post("", ws.HTTP_UserIntegralInfo)
|
||||
originhttp.Get("/aaa/bbb", ws.HTTP_Test)
|
||||
originhttp.Get("/Login/bbb", ws.HTTP_UserIntegralInfo)
|
||||
originhttp.SetStaticResource(originhttp.METHOD_GET, "/file/", "d:\\")
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
//OnRun ...
|
||||
func (ws *SubNet1_Service1) OnRun() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
//服务要对外的接口规划如下:
|
||||
//RPC_MethodName(arg *DataType1, ret *DataType2) error
|
||||
//如果不符合规范,在加载服务时,该函数将不会被映射,其他服务将不允能调用。
|
||||
func (slf *SubNet1_Service1) RPC_Add(arg *InputData, ret *int) error {
|
||||
*ret = arg.A1 + arg.A2
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
|
||||
func (slf *SubNet1_Service1) HTTP_Test(request *originhttp.HttpRequest, resp *originhttp.HttpRespone) error {
|
||||
var cookieList []*http.Cookie
|
||||
cookieList = append(cookieList,&http.Cookie{Name: "X-Xsrftoken",Value: "df41ba54db5011e89861002324e63af81", HttpOnly: true,Domain:"urquant.net"})
|
||||
resp.Redirect("https://www.urquant.net?sdaf=1",cookieList)
|
||||
//redirects(&resp.Resp, &request.Req)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (slf *SubNet1_Service1) HTTP_UserIntegralInfo(request *originhttp.HttpRequest, resp *originhttp.HttpRespone) error {
|
||||
ret, ok := request.Query("a")
|
||||
fmt.Print(ret, ok)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/duanhf2012/origin/originnode"
|
||||
"github.com/duanhf2012/origin/service"
|
||||
)
|
||||
|
||||
type SubNet1_Service2 struct {
|
||||
service.BaseService
|
||||
}
|
||||
|
||||
func init() {
|
||||
originnode.InitService(&SubNet1_Service2{})
|
||||
}
|
||||
|
||||
//OnInit ...
|
||||
func (ws *SubNet1_Service2) OnInit() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
//OnRun ...
|
||||
func (ws *SubNet1_Service2) OnRun() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (slf *SubNet1_Service2) RPC_Sub(arg *InputData, ret *int) error {
|
||||
|
||||
*ret = arg.A1 - arg.A2
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/duanhf2012/origin/originnode"
|
||||
"github.com/duanhf2012/origin/service"
|
||||
)
|
||||
|
||||
type SubNet2_Service1 struct {
|
||||
service.BaseService
|
||||
}
|
||||
|
||||
func init() {
|
||||
originnode.InitService(&SubNet2_Service1{})
|
||||
}
|
||||
|
||||
//OnInit ...
|
||||
func (ws *SubNet2_Service1) OnInit() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
//OnRun ...
|
||||
func (ws *SubNet2_Service1) OnRun() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (slf *SubNet2_Service1) RPC_Multi(arg *InputData, ret *int) error {
|
||||
|
||||
*ret = arg.A1 * arg.A2
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/duanhf2012/origin/originnode"
|
||||
"github.com/duanhf2012/origin/service"
|
||||
)
|
||||
|
||||
type SubNet2_Service2 struct {
|
||||
service.BaseService
|
||||
}
|
||||
|
||||
func init() {
|
||||
originnode.InitService(&SubNet2_Service2{})
|
||||
}
|
||||
|
||||
//OnInit ...
|
||||
func (ws *SubNet2_Service2) OnInit() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
//OnRun ...
|
||||
func (ws *SubNet2_Service2) OnRun() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (slf *SubNet2_Service2) RPC_Div(arg *InputData, ret *int) error {
|
||||
|
||||
*ret = arg.A1 / arg.A2
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package logicservice
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/duanhf2012/origin/Test/msgpb"
|
||||
"github.com/duanhf2012/origin/cluster"
|
||||
"github.com/duanhf2012/origin/network"
|
||||
"github.com/duanhf2012/origin/sysservice"
|
||||
"github.com/golang/protobuf/proto"
|
||||
@@ -37,60 +38,73 @@ func (ws *SubNet1_Service) OnInit() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
type InputData struct {
|
||||
A1 int
|
||||
A2 int
|
||||
}
|
||||
|
||||
//OnRun ...
|
||||
func (ws *SubNet1_Service) OnRun() bool {
|
||||
|
||||
|
||||
time.Sleep(time.Second * 10)
|
||||
var cli network.TcpSocketClient
|
||||
cli.Connect("127.0.0.1:9004")
|
||||
cli.Connect("127.0.0.1:9402")
|
||||
test := msgpb.Test{}
|
||||
test.AssistCount = proto.Int32(343)
|
||||
|
||||
cli.SendMsg(110, &test)
|
||||
cli.SendMsg(110, &test)
|
||||
|
||||
var a InputData
|
||||
var rs int
|
||||
a.A1 = 3
|
||||
a.A2 = 4
|
||||
cluster.Call("SubNet1_Service2.RPC_Sub",&a,&rs)
|
||||
fmt.Print(rs)
|
||||
return false
|
||||
}
|
||||
|
||||
func (ws *SubNet1_Service) MessageHandler(pClient *network.SClient, msgtype uint16, msg proto.Message) {
|
||||
fmt.Print("recv:",pClient.GetId(), ":", msg,"\n")
|
||||
pClient.SendMsg(msgtype,msg)
|
||||
|
||||
func (ws *SubNet1_Service) MessageHandler(clientid uint64, msgtype uint16, msg proto.Message) {
|
||||
fmt.Print("recv:",clientid, ":", msg,"\n")
|
||||
sysservice.GetTcpSocketPbService("ls").SendMsg(clientid,msgtype,msg)
|
||||
/*test core dump
|
||||
var a map[int]int
|
||||
a[33] = 3
|
||||
fmt.Print(a[44])
|
||||
*/
|
||||
}
|
||||
|
||||
func (ws *SubNet1_Service) ConnEventHandler(pClient *network.SClient) {
|
||||
fmt.Print("connected..",pClient.GetId(),"\n")
|
||||
|
||||
func (ws *SubNet1_Service) ConnEventHandler(clientid uint64) {
|
||||
fmt.Print("connected..",clientid,"\n")
|
||||
}
|
||||
|
||||
func (ws *SubNet1_Service) DisconnEventHandler(pClient *network.SClient) {
|
||||
fmt.Print("disconnected..",pClient.GetId(),"\n")
|
||||
func (ws *SubNet1_Service) DisconnEventHandler(clientid uint64) {
|
||||
fmt.Print("disconnected..",clientid,"\n")
|
||||
}
|
||||
|
||||
func (ws *SubNet1_Service) ExceptMessage(pClient *network.SClient, pPack *network.MsgBasePack, err error) {
|
||||
fmt.Print("except..",pClient.GetId(),",",pPack,"\n")
|
||||
func (ws *SubNet1_Service) ExceptMessage(clientid uint64, pPack *network.MsgBasePack, err error) {
|
||||
fmt.Print("except..",clientid,",",pPack,"\n")
|
||||
}
|
||||
|
||||
|
||||
|
||||
///////////////////////////
|
||||
|
||||
func (ws *SubNet1_Service) MessageHandler2(pClient *network.SClient, msgtype uint16, msg proto.Message) {
|
||||
fmt.Print("recv:",pClient.GetId(), ":", msg,"\n")
|
||||
pClient.SendMsg(msgtype,msg)
|
||||
func (ws *SubNet1_Service) MessageHandler2(clientid uint64, msgtype uint16, msg proto.Message) {
|
||||
fmt.Print("recv:",clientid, ":", msg,"\n")
|
||||
//pClient.SendMsg(msgtype,msg)
|
||||
sysservice.GetTcpSocketPbService("ls").SendMsg(clientid,msgtype,msg)
|
||||
}
|
||||
|
||||
func (ws *SubNet1_Service) ConnEventHandler2(pClient *network.SClient) {
|
||||
fmt.Print("connected..",pClient.GetId(),"\n")
|
||||
func (ws *SubNet1_Service) ConnEventHandler2(clientid uint64) {
|
||||
fmt.Print("connected..",clientid,"\n")
|
||||
}
|
||||
|
||||
func (ws *SubNet1_Service) DisconnEventHandler2(pClient *network.SClient) {
|
||||
fmt.Print("disconnected..",pClient.GetId(),"\n")
|
||||
func (ws *SubNet1_Service) DisconnEventHandler2(clientid uint64) {
|
||||
fmt.Print("disconnected..",clientid,"\n")
|
||||
}
|
||||
|
||||
func (ws *SubNet1_Service) ExceptMessage2(pClient *network.SClient, pPack *network.MsgBasePack, err error) {
|
||||
fmt.Print("except..",pClient.GetId(),",",pPack,"\n")
|
||||
func (ws *SubNet1_Service) ExceptMessage2(clientid uint64, pPack *network.MsgBasePack, err error) {
|
||||
fmt.Print("except..",clientid,",",pPack,"\n")
|
||||
}
|
||||
@@ -37,15 +37,15 @@ func main() {
|
||||
httpserver.SetHttps(ca.CertFile, ca.KeyFile)
|
||||
}
|
||||
|
||||
pTcpService := sysservice.NewTcpSocketPbService(":9004")
|
||||
pTcpService := sysservice.NewTcpSocketPbService(":9402")
|
||||
pTcpService.SetServiceName("ls")
|
||||
|
||||
/*
|
||||
pTcpService2 := sysservice.NewTcpSocketPbService(":9005")
|
||||
pTcpService2.SetServiceName("lc")
|
||||
|
||||
*/
|
||||
httpserver.SetPrintRequestTime(true)
|
||||
|
||||
node.SetupService(httpserver,pTcpService,pTcpService2)
|
||||
node.SetupService(httpserver,pTcpService)
|
||||
node.Init()
|
||||
node.Start()
|
||||
}
|
||||
|
||||
@@ -115,6 +115,14 @@ func (slf *TcpSocketServer) listenServer(){
|
||||
}
|
||||
}
|
||||
|
||||
func (slf *TcpSocketServer) SendMsg(clientid uint64,packtype uint16,message proto.Message) error{
|
||||
pClient := slf.mapClient.Get(clientid)
|
||||
if pClient == nil {
|
||||
return fmt.Errorf("clientid %d is not in connect pool.",clientid)
|
||||
}
|
||||
|
||||
return pClient.(*SClient).SendMsg(packtype,message)
|
||||
}
|
||||
|
||||
func (slf *SClient) listendata(){
|
||||
defer func() {
|
||||
@@ -205,6 +213,7 @@ func (slf *MsgBasePack) FillData(bdata []byte,datasize uint16) (uint16,bool,bool
|
||||
return fillsize,false,fillhead
|
||||
}
|
||||
|
||||
|
||||
func (slf *MsgBasePack) Clear() {
|
||||
}
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ type TcpSocketPbService struct {
|
||||
}
|
||||
|
||||
|
||||
type MessageHandler func(pClient *network.SClient,msgtype uint16,msg proto.Message)
|
||||
type EventHandler func(pClient *network.SClient)
|
||||
type ExceptMsgHandler func(pClient *network.SClient,pPack *network.MsgBasePack,err error)
|
||||
type MessageHandler func(clientid uint64,msgtype uint16,msg proto.Message)
|
||||
type EventHandler func(clientid uint64)
|
||||
type ExceptMsgHandler func(clientid uint64,pPack *network.MsgBasePack,err error)
|
||||
|
||||
|
||||
|
||||
@@ -88,13 +88,13 @@ func (slf *TcpSocketPbService) RegExceptMessage(exceptMsgHandler ExceptMsgHandle
|
||||
|
||||
func (slf *TcpSocketPbService) OnConnected(pClient *network.SClient){
|
||||
if slf.connEvent!=nil {
|
||||
slf.connEvent(pClient)
|
||||
slf.connEvent(pClient.GetId())
|
||||
}
|
||||
}
|
||||
|
||||
func (slf *TcpSocketPbService) OnDisconnect(pClient *network.SClient){
|
||||
if slf.disconnEvent!=nil {
|
||||
slf.disconnEvent(pClient)
|
||||
slf.disconnEvent(pClient.GetId())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ func (slf *TcpSocketPbService) VerifyPackType(packtype uint16) bool{
|
||||
|
||||
func (slf *TcpSocketPbService) OnExceptMsg (pClient *network.SClient,pPack *network.MsgBasePack,err error){
|
||||
if slf.exceptMsgHandler!=nil {
|
||||
slf.exceptMsgHandler(pClient,pPack,err)
|
||||
slf.exceptMsgHandler(pClient.GetId(),pPack,err)
|
||||
}else{
|
||||
pClient.Close()
|
||||
//记录日志
|
||||
@@ -124,7 +124,7 @@ func (slf *TcpSocketPbService) OnRecvMsg(pClient *network.SClient, pPack *networ
|
||||
return
|
||||
}
|
||||
|
||||
info.msgHandler(pClient,pPack.PackType(), msg.(proto.Message))
|
||||
info.msgHandler(pClient.GetId(),pPack.PackType(), msg.(proto.Message))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -149,4 +149,8 @@ func GetTcpSocketPbService(serviceName string) *TcpSocketPbService{
|
||||
}
|
||||
|
||||
return iservice.(*TcpSocketPbService)
|
||||
}
|
||||
|
||||
func (slf *TcpSocketPbService) SendMsg(clientid uint64,packtype uint16,message proto.Message) error{
|
||||
return slf.tcpsocketserver.SendMsg(clientid,packtype,message)
|
||||
}
|
||||
Reference in New Issue
Block a user