tcp-based-on-gf-gtcp
介绍
基于gf-gtcp的二次小封装,主要是用gmap组合了conn/client/自定义uid,以便可以从服务端快速向指定的客户端发送消息
安装教程
go get gitee.com/hello-rong/gfgtcp
使用示例
示例一:常规使用
package main
import (
"gitee.com/hello-rong/gfgtcp/svr"
"github.com/gogf/gf/net/gtcp"
)
func main() {
server := svr.NewServerService
server.SetServerAddress("127.0.0.1:8999")
server.SetServerName("svr0")
server.SetMessageHandler(onMessage)
_ = server.NewServer()
}
func onMessage(conn *gtcp.Conn, message []byte) {
//......
}
示例二:开放多端口给不同客户端使用(硬件/后台交互接口/微信小程序/公众号...)
package main
import (
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/gtcp"
"gitee.com/hello-rong/gfgtcp/svr"
"app/service"
)
func main() {
server := svr.NewServerService
//server.SetMessageHandler(service.NewMessageService1.OnMessage)
server.SetMessageHandler(onMessageOne)
go gtcp.NewServer("0.0.0.0:8998", server.OnNewServer).Run()
//server.SetMessageHandler(service.NewMessageService2.OnMessage)
server.SetMessageHandler(onMessageTwo)
go gtcp.NewServer("0.0.0.0:8999", server.OnNewServer).Run()
//ws,wss......
g.Wait()
}
//使用与硬件的通信协议(正式使用时可以移到\app\service目录下)
func onMessageOne(conn *gtcp.Conn, message []byte) {
//......
}
//使用与后台管理的通信协议(正式使用时可以移到\app\service目录下)
func onMessageTwo(conn *gtcp.Conn, message []byte) {
//......
}