mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-28 18:25:05 +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 (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/duanhf2012/origin/Test/msgpb"
|
"github.com/duanhf2012/origin/Test/msgpb"
|
||||||
|
"github.com/duanhf2012/origin/cluster"
|
||||||
"github.com/duanhf2012/origin/network"
|
"github.com/duanhf2012/origin/network"
|
||||||
"github.com/duanhf2012/origin/sysservice"
|
"github.com/duanhf2012/origin/sysservice"
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
@@ -37,60 +38,73 @@ func (ws *SubNet1_Service) OnInit() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type InputData struct {
|
||||||
|
A1 int
|
||||||
|
A2 int
|
||||||
|
}
|
||||||
|
|
||||||
//OnRun ...
|
//OnRun ...
|
||||||
func (ws *SubNet1_Service) OnRun() bool {
|
func (ws *SubNet1_Service) OnRun() bool {
|
||||||
|
|
||||||
|
|
||||||
time.Sleep(time.Second * 10)
|
time.Sleep(time.Second * 10)
|
||||||
var cli network.TcpSocketClient
|
var cli network.TcpSocketClient
|
||||||
cli.Connect("127.0.0.1:9004")
|
cli.Connect("127.0.0.1:9402")
|
||||||
test := msgpb.Test{}
|
test := msgpb.Test{}
|
||||||
test.AssistCount = proto.Int32(343)
|
test.AssistCount = proto.Int32(343)
|
||||||
|
|
||||||
cli.SendMsg(110, &test)
|
cli.SendMsg(110, &test)
|
||||||
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
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ws *SubNet1_Service) MessageHandler(pClient *network.SClient, msgtype uint16, msg proto.Message) {
|
func (ws *SubNet1_Service) MessageHandler(clientid uint64, msgtype uint16, msg proto.Message) {
|
||||||
fmt.Print("recv:",pClient.GetId(), ":", msg,"\n")
|
fmt.Print("recv:",clientid, ":", msg,"\n")
|
||||||
pClient.SendMsg(msgtype,msg)
|
sysservice.GetTcpSocketPbService("ls").SendMsg(clientid,msgtype,msg)
|
||||||
|
/*test core dump
|
||||||
var a map[int]int
|
var a map[int]int
|
||||||
a[33] = 3
|
a[33] = 3
|
||||||
fmt.Print(a[44])
|
fmt.Print(a[44])
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ws *SubNet1_Service) ConnEventHandler(pClient *network.SClient) {
|
func (ws *SubNet1_Service) ConnEventHandler(clientid uint64) {
|
||||||
fmt.Print("connected..",pClient.GetId(),"\n")
|
fmt.Print("connected..",clientid,"\n")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ws *SubNet1_Service) DisconnEventHandler(pClient *network.SClient) {
|
func (ws *SubNet1_Service) DisconnEventHandler(clientid uint64) {
|
||||||
fmt.Print("disconnected..",pClient.GetId(),"\n")
|
fmt.Print("disconnected..",clientid,"\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ws *SubNet1_Service) ExceptMessage(pClient *network.SClient, pPack *network.MsgBasePack, err error) {
|
func (ws *SubNet1_Service) ExceptMessage(clientid uint64, pPack *network.MsgBasePack, err error) {
|
||||||
fmt.Print("except..",pClient.GetId(),",",pPack,"\n")
|
fmt.Print("except..",clientid,",",pPack,"\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
|
|
||||||
func (ws *SubNet1_Service) MessageHandler2(pClient *network.SClient, msgtype uint16, msg proto.Message) {
|
func (ws *SubNet1_Service) MessageHandler2(clientid uint64, msgtype uint16, msg proto.Message) {
|
||||||
fmt.Print("recv:",pClient.GetId(), ":", msg,"\n")
|
fmt.Print("recv:",clientid, ":", msg,"\n")
|
||||||
pClient.SendMsg(msgtype,msg)
|
//pClient.SendMsg(msgtype,msg)
|
||||||
|
sysservice.GetTcpSocketPbService("ls").SendMsg(clientid,msgtype,msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ws *SubNet1_Service) ConnEventHandler2(pClient *network.SClient) {
|
func (ws *SubNet1_Service) ConnEventHandler2(clientid uint64) {
|
||||||
fmt.Print("connected..",pClient.GetId(),"\n")
|
fmt.Print("connected..",clientid,"\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ws *SubNet1_Service) DisconnEventHandler2(pClient *network.SClient) {
|
func (ws *SubNet1_Service) DisconnEventHandler2(clientid uint64) {
|
||||||
fmt.Print("disconnected..",pClient.GetId(),"\n")
|
fmt.Print("disconnected..",clientid,"\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ws *SubNet1_Service) ExceptMessage2(pClient *network.SClient, pPack *network.MsgBasePack, err error) {
|
func (ws *SubNet1_Service) ExceptMessage2(clientid uint64, pPack *network.MsgBasePack, err error) {
|
||||||
fmt.Print("except..",pClient.GetId(),",",pPack,"\n")
|
fmt.Print("except..",clientid,",",pPack,"\n")
|
||||||
}
|
}
|
||||||
@@ -37,15 +37,15 @@ func main() {
|
|||||||
httpserver.SetHttps(ca.CertFile, ca.KeyFile)
|
httpserver.SetHttps(ca.CertFile, ca.KeyFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
pTcpService := sysservice.NewTcpSocketPbService(":9004")
|
pTcpService := sysservice.NewTcpSocketPbService(":9402")
|
||||||
pTcpService.SetServiceName("ls")
|
pTcpService.SetServiceName("ls")
|
||||||
|
/*
|
||||||
pTcpService2 := sysservice.NewTcpSocketPbService(":9005")
|
pTcpService2 := sysservice.NewTcpSocketPbService(":9005")
|
||||||
pTcpService2.SetServiceName("lc")
|
pTcpService2.SetServiceName("lc")
|
||||||
|
*/
|
||||||
httpserver.SetPrintRequestTime(true)
|
httpserver.SetPrintRequestTime(true)
|
||||||
|
|
||||||
node.SetupService(httpserver,pTcpService,pTcpService2)
|
node.SetupService(httpserver,pTcpService)
|
||||||
node.Init()
|
node.Init()
|
||||||
node.Start()
|
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(){
|
func (slf *SClient) listendata(){
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -205,6 +213,7 @@ func (slf *MsgBasePack) FillData(bdata []byte,datasize uint16) (uint16,bool,bool
|
|||||||
return fillsize,false,fillhead
|
return fillsize,false,fillhead
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (slf *MsgBasePack) Clear() {
|
func (slf *MsgBasePack) Clear() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ type TcpSocketPbService struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
type MessageHandler func(pClient *network.SClient,msgtype uint16,msg proto.Message)
|
type MessageHandler func(clientid uint64,msgtype uint16,msg proto.Message)
|
||||||
type EventHandler func(pClient *network.SClient)
|
type EventHandler func(clientid uint64)
|
||||||
type ExceptMsgHandler func(pClient *network.SClient,pPack *network.MsgBasePack,err error)
|
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){
|
func (slf *TcpSocketPbService) OnConnected(pClient *network.SClient){
|
||||||
if slf.connEvent!=nil {
|
if slf.connEvent!=nil {
|
||||||
slf.connEvent(pClient)
|
slf.connEvent(pClient.GetId())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (slf *TcpSocketPbService) OnDisconnect(pClient *network.SClient){
|
func (slf *TcpSocketPbService) OnDisconnect(pClient *network.SClient){
|
||||||
if slf.disconnEvent!=nil {
|
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){
|
func (slf *TcpSocketPbService) OnExceptMsg (pClient *network.SClient,pPack *network.MsgBasePack,err error){
|
||||||
if slf.exceptMsgHandler!=nil {
|
if slf.exceptMsgHandler!=nil {
|
||||||
slf.exceptMsgHandler(pClient,pPack,err)
|
slf.exceptMsgHandler(pClient.GetId(),pPack,err)
|
||||||
}else{
|
}else{
|
||||||
pClient.Close()
|
pClient.Close()
|
||||||
//记录日志
|
//记录日志
|
||||||
@@ -124,7 +124,7 @@ func (slf *TcpSocketPbService) OnRecvMsg(pClient *network.SClient, pPack *networ
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
info.msgHandler(pClient,pPack.PackType(), msg.(proto.Message))
|
info.msgHandler(pClient.GetId(),pPack.PackType(), msg.(proto.Message))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,4 +149,8 @@ func GetTcpSocketPbService(serviceName string) *TcpSocketPbService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
return iservice.(*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