Socket.io 服务器未从使用 graarh/golang-socketio 实现的客户端接收消息

问题描述

我的服务器从前端接收连接就好了,但发送消息似乎不起作用。我的语法有问题吗?

前端:

const API_URL = "http://localhost:3311/socket.io/"
let socket = io.connect(API_URL,{transports: ['websocket']})

socket.on("fromserver",(data) => {
    console.log(data)
    appendMessage("other-message",data)
})

inputForm.addEventListener("submit",e => {
    e.preventDefault()

    const message = inputBox.value
    socket.emit("fromclient",message,(result) => {
        console.log(result)
    })

    inputForm.reset()
})

后端:

router := chi.NewRouter()


router.Get("/",func(res http.ResponseWriter,req *http.Request) {
    http.ServeFile(res,req,"./templates/index.html")
})


socket.On(gosocketio.OnConnection,func(c *gosocketio.Channel) {
        fmt.Println("id:",c.Id(),"ip:",c.Ip())
        c.Join("room")
})

socket.On("fromclient",func(c *gosocketio.Channel,message string) string  {
          fmt.Println("message from id:",":",message)
                
          c.broadcastTo("room","fromserver",message)
          return "message sent!"
})

router.Handle("/socket.io/",socket)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)