Push notification 在聊天应用程序中使用新消息更新用户

Push notification 在聊天应用程序中使用新消息更新用户,push-notification,socket.io,Push Notification,Socket.io,我正在用socket.io编写一个聊天应用程序react native。聊天用户属于一个聊天室,一个聊天室中有许多用户。大多数情况下,一个房间里有几个到几十个用户。当有新的聊天室信息发布到服务器时,可以将聊天室信息插入到一个聊天室中的用户,也可以将一条简短的标准信息插入到聊天室中的用户,要求他们从服务器中提取和更新。我能想到的第三种方法是将消息推送到需要推送通知支持的用户。假设它是可用的。我不确定这些更新方法的利弊。除了上述3种方法之外,还有其他更新方法吗?我刚刚创建了一个在生产中使用React

我正在用socket.io编写一个聊天应用程序react native。聊天用户属于一个聊天室,一个聊天室中有许多用户。大多数情况下,一个房间里有几个到几十个用户。当有新的聊天室信息发布到服务器时,可以将聊天室信息插入到一个聊天室中的用户,也可以将一条简短的标准信息插入到聊天室中的用户,要求他们从服务器中提取和更新。我能想到的第三种方法是将消息推送到需要推送通知支持的用户。假设它是可用的。我不确定这些更新方法的利弊。除了上述3种方法之外,还有其他更新方法吗?

我刚刚创建了一个在生产中使用React和Socket.io的应用程序,用于在用户向特定对话发送消息时将消息推送到特定房间中的用户。我没有使用推送通知,因为我正在构建一个web应用程序,而不是一个移动应用程序,但您提到的推送通知在逻辑上相当于将消息信息直接发送给房间中的所有用户。就我所考虑的情况而言,我认为你已经涵盖了上述所有可用选项

也就是说,正如您所提到的,这两种方法都有优点和缺点:直接向所有用户发送整个消息,或向所有用户发送一个小通知以检索所有最新消息。前者的优点是消息直接发送给所有用户,因此他们接收消息的速度比后者快得多。但是,如果您使用Socket.io的方式是,例如,您以不稳定的方式向所有用户发送消息,则前一种情况的缺点是,客户端用户可能由于网络故障而无法接收消息,并且发送的消息不会出现在他们的对话消息中。另外,直接发送所有消息信息并不能让客户机应用程序控制何时接收所有消息数据。另一方面,后一种情况的pro是,在一次对话中,只向所有用户发送一条小消息,从而节省传输的数据量,然后这些用户可以在客户端应用程序认为合适的时候查询最新消息。在这种情况下,缺点是实际发送的消息不会立即到达客户端应用程序,从而在消息发送和接收之间增加了一定的延迟。当然,如果没有两个客户端应用程序在两个单独的设备上并排打开,并且有人用秒表查看延迟时间,那么很难注意到这一点


总而言之,我相信您已经列出了上述所有选项。现在,根据这些场景的优缺点,您认为哪种场景适合您的应用程序实施。

谢谢您的评论。我正在使用的带有nodejs后端的移动应用程序需要近乎实时的消息共享和传递。当用户处于在线活动状态时,基于套接字的传递要么通过套接字发送消息,要么通过套接字向用户发出拉动信号。对于不在线的用户,可能需要推送通知。是的,你的混合想法对我来说是个不错的方法。顺便说一句,我认为值得一提的是,我观察到我在手机上使用的一些聊天应用程序似乎已切换到我上面提到的“小消息优先/完整消息最后”场景。并不是所有的应用程序都切换到了这个系统,但似乎有一些正在朝着这个方向发展。如果你在这一点上关心基于行业的哪种方法最合适,我认为你应该选择最适合你的方法。