Go WebSocket:一个处理程序来管理它们?带备份的最佳情况?

Go WebSocket:一个处理程序来管理它们?带备份的最佳情况?,go,mobile,websocket,architecture,Go,Mobile,Websocket,Architecture,我正在开发一款iOS应用程序,它可以做一些事情,其中一些可以从实时数据流(如聊天)中获益 因为现在我的服务器上有几个处理程序,其中一个可以获取用户可以访问的所有线程,另一个可以获取线程的消息(偏移量、全部、时间范围等)。当用户向线程发送消息时,我获取该线程的所有侦听器并向它们发送推送通知。这是可行的,但我读了APNS的文档,上面写着“不要超过3/小时”,我肯定超过了3/小时 所以我想我会转向WebSocket。我知道如何通过redis跨机器同步发布/订阅,所以我不担心这一点,我更专注于以下几点:

我正在开发一款iOS应用程序,它可以做一些事情,其中一些可以从实时数据流(如聊天)中获益

因为现在我的服务器上有几个处理程序,其中一个可以获取用户可以访问的所有线程,另一个可以获取线程的消息(偏移量、全部、时间范围等)。当用户向线程发送消息时,我获取该线程的所有侦听器并向它们发送推送通知。这是可行的,但我读了APNS的文档,上面写着“不要超过3/小时”,我肯定超过了3/小时

所以我想我会转向WebSocket。我知道如何通过redis跨机器同步发布/订阅,所以我不担心这一点,我更专注于以下几点:

如果我开始将websockets引入到项目中,我是否应该通过websocket将应用程序服务器上的所有信息都传送出去?创建一个线程->不要发布,只需沿套接字发送消息即可。获取消息->不轮询或发送通知,只需沿套接字发送消息即可。随便什么->不要发出请求,只需通过套接字发送消息即可


现在我倾向于通过正常的HTTP URL加载初始状态和批量数据(例如:创建一个线程,为线程XYZ加载最后20条消息),但对于需要实时推送和接收的数据(例如:聊天消息发送/接收),则通过websocket来实现。

这是一个很好的示例,如果你想在WebSocket上建立一个聊天系统。如果您正在考虑在WebSocket上构建聊天系统,那么这是一个很好的例子。