I am able to send real time messages to everyone in a chat room by creating a web socket handler and then adding clients to a hashmap such as ActiveClients[client] and then using this code which messages everyone in the ActiveClients:
for cs, _ := range ActiveClients {
if err = websocket.Message.Send(cs, reply); err != nil {
// we could not send the message to a peer
log.Println("Could not send message to ", c.clientIP, err.Error())
}
}
I am using JavaScript sockets to connect on the front end and it sends JSON data to the back end through a web socket handler. I am using the package “golang.org/x/net/websocket” for the back end.
Is it better to use the same socket connection for everything(think chatroom, game room, private messaging, etc all sharing the same socket handler). Or should I make multiple web socket handlers to handle each back end logic?
I have different web pages connecting to the same wss://mywebsite.com:port socket connection, one web page handles chat, one handles real time game and private chat. I have one web socket handler in the back end which unmarshal the JSON and then it uses switch statements to identify if the JSON is a public chat message, if its a game move, or if its a private message etc. Is this an efficient implementation of web sockets?