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

时间:2021-06-09 18:30:08

标签: go socket.io go-chi

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

前端:

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:", c.Id(), ":", message)
                
          c.BroadcastTo("room", "fromserver", message)
          return "message sent!"
})

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

0 个答案:

没有答案