How to call join in the EventListenser?
zizhong opened this issue · 2 comments
zizhong commented
Hi,
I'm considering using this go lib to replace the old one.
Currently, in the code
// 'join' event handler,
// The 'join' workflow is as follows,
// 1. FE client got ack from server. Client side `connected` event is triggered.
// 2. In client connect event handler,
// socket.on('connect', () => {
// socket.emit('join', jwtToken);
// });
// 3. this event handler is triggered, and the connection is joined to a room called `email`
broadcastServer.OnEvent("", "join", func(s socketio.Conn, user string) {
s.join(user)
})
How will this usage be supported by socket.io?
Thanks,
zishang520 commented
Hi, this might be the code snippet you need:
io.On("connection", func(args ...any) {
socket := args[0].(*socket.Socket)
utils.Log().Info(`socket %s connected`, socket.Id())
// send an event to the client
socket.Emit("foo", "bar")
socket.On("foobar", func(...any) {
// an event was received from the client
})
// join the room named "room1"
socket.Join("room1")
// broadcast to everyone in the room named "room1"
io.To("room1").Emit("hello")
// upon disconnection
socket.On("disconnect", func(reason ...any) {
utils.Log().Info(`socket %s disconnected due to %s`, socket.Id(), reason[0])
})
})
zizhong commented
Yea, so you can refer to the socket object in the event listener. Thanks!