【发布时间】:2018-08-08 21:45:15
【问题描述】:
我有一个 Web 应用程序,其服务器为每个 websocket 连接创建一个客户端。客户端充当 websocket 连接和 Hub 的单个实例之间的中介。 Hub 维护一组注册的客户端并向客户端广播消息。这工作得很好,但问题是客户端可能会错过从服务器生成客户端在连接时接收的初始状态包到客户端注册到集线器并开始接收广播事件之间的事件。
我的想法是在从数据库中获取任何信息之前向集线器注册客户端。这将确保客户端不会错过任何广播,尽管现在它可以接收已经应用于它接收的初始状态的消息。为了让客户端忽略这些消息,我可以在初始状态包和广播事件中包含一个单调的时间戳。
你能想出更优雅/更简单的解决方案吗?
【问题讨论】:
标签: go web server architecture synchronization