【问题标题】:Sending private message to user with socket.io使用 socket.io 向用户发送私人消息
【发布时间】:2020-09-10 05:28:27
【问题描述】:

我正在尝试使用 socket.io 为我的移动应用程序实现私人消息传递,这些应用程序具有像 Instagram 这样的直接消息传递功能。现在,我正在使用 Node.js 和 React Native。我对socket.io有点陌生。我看到了很多这样的例子。然而,有一件事我并不清楚。 用户单击“发送消息”按钮。然后我创建一个套接字连接,用户加入一个带有套接字 id 的房间。然后用户向该房间发送消息。 这里的问题是,其他用户将如何获得消息?因为此时,我认为其他用户不知道房间 ID。当然,如果有更好的解决方案,我愿意接受每一个建议。

【问题讨论】:

    标签: node.js react-native socket.io


    【解决方案1】:

    您可以做的一件事是为每个人创建一个房间。当此人登录您的应用并连接到 socket.io 时,您会希望他们使用其用户 ID 自动加入房间。

    然后当有人想给他们发消息时,他们可以将消息发送到房间给接收用户。

    但是,我认为如果您正在构建消息传递应用程序,socket.io 不是正确的方法。据我所知,当应用程序处于后台时,您无法在套接字上收听(即使可以,它也会耗尽用户的电池寿命)。您应该改用推送通知并使用数据字段(例如 zo0r/react-native-push-notification 和 firebase)。

    【讨论】:

    • 您对推送通知的看法是正确的。如果用户不使用该应用程序,我计划使用推送通知。但是对于像 Instagram 这样的实时聊天,我认为 socket.io 会是一个不错的选择。至少开始。我心中的一个问题是,我应该如何保存房间数据?我应该创建一个名为“房间”的变量吗?我只是想知道这类工作的最佳实践。
    • 根据我的经验,当我们需要“一对一”聊天时,socket.io 不是正确的解决方案。我在这个话题上花了几个月的时间,但我未能使用 socket.io 实现私人消息。
    猜你喜欢
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    相关资源
    最近更新 更多