我想在我的web应用程序中实现实时通知功能。我正在关注这个例子“https://github.com/gorilla/websocket/tree/master/examples/chat”。我需要服务器(集线器)来获取消息,它需要根据某种形式的ID将这些消息推送给各个客户端。我怎样才能做到这一点?实时推送通知golang
-5
A
回答
0
从样品中你提到:
case message := <-h.broadcast:
for client := range h.clients {
select {
case client.send <- message:
default:
close(client.send)
delete(h.clients, client)
}
}
}
这是一个消息被广播到所有客户端的情况。正如你所看到的,它遍历所有注册的客户端,并将消息发送给它们中的每一个。
为了保留此功能,我们将简单地添加另一个案例:发送给单个客户端。
case message := <-h.clientMessage:
for client := range h.clients {
if message.ClientID == client.ID {
select {
case client.send <- message:
default:
close(client.send)
delete(h.clients, client)
}
}
}
}
这应该给你一个想法。剩下的我留给你。
注意:我的示例代码可以通过如下方式进行优化:使用map[clientID]Client
直接访问客户端。
相关问题
- 1. PHP实时通知(推送?)
- 2. 使用Firebase的实时推送通知
- 3. 实时服务和推送通知
- 4. Phonegap推送通知实施
- 5. 推送推送通知
- 6. 时区 - 推送通知
- 7. 推送通知
- 8. 推送通知
- 9. 推送通知
- 10. 推送通知
- 11. 推送通知
- 12. Firebase推送通知
- 13. Devextreme推送通知
- 14. 推送通知?Iphone
- 15. 推送通知iPhone
- 16. 从推送通知
- 17. Chrome推送通知
- 18. Android推送通知
- 19. PHP - 推送通知
- 20. iPhone推送通知
- 21. 推送通知IOS
- 22. 推送Cookie通知
- 23. IOS8推送通知
- 24. iPhone推送通知
- 25. VOIP推送通知
- 26. didRegisterForRemoteNotificationsWithDeviceToken - 推送通知
- 27. Appcelerator推送通知
- 28. C2Call推送通知
- 29. iPhone - 推送通知
- 30. 推送通知 - Android
你试过了吗?你能发布一个[最小的,完整的,可验证的例子](https://stackoverflow.com/help/mcve)并解释它如何不按预期工作? – Adrian
@ Adrian-I有示例聊天应用程序。不知道如何仅将msg发送给某些用户。现在,味精被发送到所有连接的客户端。 – amanda45
那么你的代码在哪里? – Flimzy