增加tcp服务的推送接口

pull/30/head
taoshihan1991 5 years ago
parent 760e7687f4
commit a9c6ee3725

@ -72,6 +72,7 @@ func SendMessage(c *gin.Context) {
},
}
str, _ := json.Marshal(msg)
PushServerTcp(str)
conn.WriteMessage(websocket.TextMessage,str)
}
if cType=="visitor"{
@ -95,6 +96,7 @@ func SendMessage(c *gin.Context) {
},
}
str, _ := json.Marshal(msg)
PushServerTcp(str)
for _,kefuConn:=range kefuConns{
kefuConn.WriteMessage(websocket.TextMessage,str)
}

@ -0,0 +1,32 @@
package controller
import (
"log"
"net"
)
var clientTcpList = make([]net.Conn,0)
func NewTcpServer(tcpBaseServer string){
listener, err := net.Listen("tcp", tcpBaseServer)
if err != nil {
log.Println("Error listening", err.Error())
return //终止程序
}
// 监听并接受来自客户端的连接
for {
conn, err := listener.Accept()
if err != nil {
log.Println("Error accepting", err.Error())
return // 终止程序
}
clientTcpList=append(clientTcpList,conn)
}
}
func PushServerTcp(str []byte){
for index,conn:=range clientTcpList{
_,err:=conn.Write(str)
log.Println(index,err)
if err!=nil{
clientTcpList=append(clientTcpList[:index],clientTcpList[index+1:]...)
}
}
}

@ -124,3 +124,18 @@ func GetVisitorMessage(c *gin.Context) {
"result":result,
})
}
func GetVisitorOnlines(c *gin.Context) {
users:=make([]map[string]string,0)
for uid,visitor :=range clientList{
userInfo := make(map[string]string)
userInfo["uid"] = uid
userInfo["name"] = visitor.name
userInfo["avator"] = visitor.avator
users=append(users,userInfo)
}
c.JSON(200, gin.H{
"code": 200,
"msg": "ok",
"result":users,
})
}

@ -18,12 +18,14 @@ import (
)
var (
port string
tcpport string
daemon bool
GoflyConfig config.Config
)
func init(){
//获取参数中的数据
flag.StringVar(&port, "port", "8080", "监听端口号")
flag.StringVar(&port, "port", "8081", "监听端口号")
flag.StringVar(&tcpport, "tcpport", "8082", "监听tcp端口号")
flag.BoolVar(&daemon, "d", false, "是否为守护进程模式")
flag.Parse()
if flag.NFlag() < 1 {
@ -46,6 +48,7 @@ func init(){
func main() {
baseServer := "0.0.0.0:"+port
tcpBaseServer := "0.0.0.0:"+tcpport
log.Println("start server...\r\ngohttp://" + baseServer)
engine := gin.Default()
engine.LoadHTMLGlob("static/html/*")
@ -100,6 +103,7 @@ func main() {
engine.GET("/mysql",middleware.JwtApiMiddleware,middleware.RbacAuth, controller.MysqlGetConf)
engine.POST("/mysql",middleware.JwtApiMiddleware,middleware.RbacAuth, controller.MysqlSetConf)
engine.GET("/visitors_online", controller.GetVisitorOnlines)
engine.POST("/visitor",controller.PostVisitor)
engine.GET("/visitor",middleware.JwtApiMiddleware, controller.GetVisitor)
engine.GET("/visitors",middleware.JwtApiMiddleware, controller.GetVisitors)
@ -123,5 +127,8 @@ func main() {
logFile, _ := os.OpenFile("./fatal.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0660)
tools.RedirectStderr(logFile)
//tcp服务
go controller.NewTcpServer(tcpBaseServer)
engine.Run(baseServer)
}

Loading…
Cancel
Save