【问题标题】:Sending a "message" from server-side to client-side从服务器端向客户端发送“消息”
【发布时间】:2017-01-12 14:53:01
【问题描述】:

我们开发了一个 Web 应用程序(客户端的 HTML/CSS/JavaScript,服务器端的 Web 服务)。客户端上的每个用户操作都会调用服务器端上的某个 Web 方法。

但是当用户使用我们的应用程序打开多个浏览器选项卡时我们会遇到一些问题,因此我们决定每次用户在不同浏览器的选项卡中登录时强制注销所有浏览器的选项卡(当前选项卡除外)。 我们如何实现客户端能够从服务器端接收“消息”?

【问题讨论】:

  • 应该关闭!只需使用像 autobahn.ws / node.js / ....这样的 websockets
  • 我认为,您应该为每个用户/客户端应用程序实例添加一些唯一的 ID/令牌,这样每个选项卡都会创建一个并且不会发生冲突,而不是关闭所有选项卡(但 Telegram 仍然这样做)
  • 我建议您不要这样做,而是将应用程序更改为对用户首选的工作方式(多个选项卡)友好,而不是通过在其他应用程序中注销来让用户感到惊讶和可能激怒用户然后打开一个新的标签。
  • @T.J.Crowder 问题是,当打开多个选项卡并且用户更改其中一个选项卡中的内容时,您必须同步所有选项卡中显示的数据。实现起来有点复杂。因此,我们决定在非当前选项卡中强制注销。你同意托比亚斯的提议吗?

标签: javascript client-server ipc rpc json-rpc


【解决方案1】:

当您说从服务器端向客户端发送消息时,我假设您不希望在 Node.js 上得到响应,例如:

res.status(200).send('Hello World')不是吗?

所以,你需要的是使用 websockets。我推荐你使用socket.io

您只需要在服务器端使用套接字发送消息并在客户端监听该消息。

使用 websockets,您可以向每个使用 Id 标识的用户发送消息,或者在广播中发送消息。 websockest 有很多可能性。

您可以使用 websockets 在网络上找到示例。我想这就是你要找的。​​p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 2017-07-30
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    相关资源
    最近更新 更多