mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
126 lines
3.7 KiB
Go
126 lines
3.7 KiB
Go
package GateService
|
||
|
||
import (
|
||
"encoding/json"
|
||
"fmt"
|
||
"github.com/duanhf2012/origin/network/processor"
|
||
"github.com/duanhf2012/origin/node"
|
||
"github.com/duanhf2012/origin/service"
|
||
"github.com/duanhf2012/origin/sysmodule"
|
||
"github.com/duanhf2012/origin/sysservice"
|
||
"net/http"
|
||
"time"
|
||
)
|
||
|
||
type GateService struct {
|
||
service.Service
|
||
processor *processor.PBProcessor
|
||
processor2 *processor.PBProcessor
|
||
httpRouter sysservice.IHttpRouter
|
||
|
||
redisModule *sysmodule.RedisModule
|
||
}
|
||
|
||
func (slf *GateService) OnInit() error{
|
||
tcpervice := node.GetService("TcpService").(*sysservice.TcpService)
|
||
slf.processor = &processor.PBProcessor{}
|
||
slf.processor.RegisterDisConnected(slf.OnDisconnected)
|
||
slf.processor.RegisterConnected(slf.OnConnected)
|
||
tcpervice.SetProcessor(slf.processor,slf.GetEventHandler())
|
||
|
||
|
||
wsService := node.GetService("WSService").(*sysservice.WSService)
|
||
slf.processor2 = &processor.PBProcessor{}
|
||
slf.processor2.RegisterDisConnected(slf.OnWSDisconnected)
|
||
slf.processor2.RegisterConnected(slf.OnWSConnected)
|
||
|
||
wsService.SetProcessor(slf.processor2,slf.GetEventHandler())
|
||
|
||
|
||
httpervice := node.GetService("HttpService").(*sysservice.HttpService)
|
||
slf.httpRouter = sysservice.NewHttpHttpRouter()
|
||
httpervice.SetHttpRouter(slf.httpRouter,slf.GetEventHandler())
|
||
|
||
slf.httpRouter.GET("/get/query", slf.HttpTest)
|
||
slf.httpRouter.POST("/post/query", slf.HttpTestPost)
|
||
slf.httpRouter.SetServeFile(sysservice.METHOD_GET,"/img/head/","d:/img")
|
||
|
||
//pCronExpr,_ := timer.NewCronExpr("0 * * * * *")
|
||
//slf.CronFunc(pCronExpr,slf.Test)
|
||
|
||
redisCfg := sysmodule.ConfigRedis{
|
||
IP :"192.168.0.5",
|
||
Port :"6379",
|
||
Password :"",
|
||
DbIndex :0,
|
||
MaxIdle :50, //最大的空闲连接数,表示即使没有redis连接时依然可以保持N个空闲的连接,而不被清除,随时处于待命状态。
|
||
MaxActive :50, //最大的激活连接数,表示同时最多有N个连接
|
||
IdleTimeout :30, //最大的空闲连接等待时间,超过此时间后,空闲连接将被关闭
|
||
SyncRouterNum :10, //异步执行Router数量
|
||
}
|
||
slf.redisModule = &sysmodule.RedisModule{}
|
||
slf.redisModule.Init(&redisCfg)
|
||
slf.redisModule.OnInit()
|
||
slf.AddModule(slf.redisModule)
|
||
|
||
slf.AfterFunc(time.Second, slf.TestRedis)
|
||
|
||
return nil
|
||
}
|
||
|
||
func (slf *GateService) Test(){
|
||
fmt.Print("xxxxx\n")
|
||
}
|
||
|
||
func (slf *GateService) TestRedis() {
|
||
//slf.redisModule.GetHashValueByHashKeyList("BITGET_2160_LastSetLevelInfo", "SBTC_USD_1", "BTC_SUSDT_1", "SBTC_USD_3")
|
||
//slf.redisModule.GetHashValueByKey("BITGET_2160_LastSetLevelInfo", "SBTC_USD_1")
|
||
slf.redisModule.ScanMatchKeys(192, "ZC*", 100)
|
||
}
|
||
|
||
func (slf *GateService) HttpTest(session *sysservice.HttpSession) {
|
||
session.SetHeader("a","b")
|
||
session.Write([]byte("this is a test"))
|
||
v,_:=session.Query("a")
|
||
v2,_:=session.Query("b")
|
||
fmt.Print(string(session.GetBody()),"\n",v,"\n",v2)
|
||
}
|
||
|
||
func (slf *GateService) HttpTestPost(session *sysservice.HttpSession) {
|
||
session.SetHeader("a","b")
|
||
v,_:=session.Query("a")
|
||
v2,_:=session.Query("b")
|
||
|
||
byteBody := session.GetBody()
|
||
fmt.Print(string(session.GetBody()),"\n",v,"\n",v2)
|
||
|
||
testa := struct {
|
||
AA int `json:"aa"`
|
||
BB string `json:"bb"`
|
||
}{}
|
||
json.Unmarshal(byteBody, &testa)
|
||
fmt.Println(testa)
|
||
|
||
testa.AA = 100
|
||
testa.BB = "this is a test"
|
||
session.WriteJsonDone(http.StatusOK,"asdasda")
|
||
}
|
||
|
||
func (slf *GateService) OnConnected(clientid uint64){
|
||
fmt.Printf("client id %d connected",clientid)
|
||
}
|
||
|
||
|
||
func (slf *GateService) OnDisconnected(clientid uint64){
|
||
fmt.Printf("client id %d disconnected",clientid)
|
||
}
|
||
|
||
func (slf *GateService) OnWSConnected(clientid uint64){
|
||
fmt.Printf("client id %d connected",clientid)
|
||
}
|
||
|
||
|
||
func (slf *GateService) OnWSDisconnected(clientid uint64){
|
||
fmt.Printf("client id %d disconnected",clientid)
|
||
}
|