【问题标题】:How to use java websockets on separate machines?如何在不同的机器上使用 java websockets?
【发布时间】:2014-11-24 10:55:34
【问题描述】:

我使用 websockets 创建了一个示例聊天应用程序,该应用程序在同一台机器上运行良好。我想在不同的机器上运行客户端和服务器。 但是我很困惑如何在不同的机器上使用 websocket,因为 websocket 的操作(即 onopen、onclose、onmessage 等)是随着相应的事件发生的。 如何在不同的机器上运行 websocket 客户端和服务器?

【问题讨论】:

  • 下定决心。你想使用RMI吗?还是网络套接字?它们不是一回事。
  • 嘿@EJP,我知道这两件事是不同的。 我只想在不同的机器上运行 websocket 服务器和 websocket 客户端。 RMI 是可以在这种情况下使用的解决方案之一,即“在不同的机器上运行服务器和客户端”。但是如果服务端和客户端都使用websocket,我不知道怎么处理。
  • 因此,您的问题与 RMI 无关,提及它只会增加混乱。我建议你澄清你的问题。
  • 很抱歉造成混淆。我只想提出我尝试过的方法。是的,我的主要目标是在单独的机器上运行网络套接字。感谢您让问题更清楚。

标签: java websocket


【解决方案1】:

在您编写类似以下内容的客户端中:ws://localhost:8080/,将您的 localhost 替换为您要发送命令的不同系统的 IP 地址。

但是两台机器应该在同一个网络上。

【讨论】:

    【解决方案2】:

    您需要添加一个消息代理(如 RabbitMQ),它将从您的服务器获取消息,客户端将订阅相同的代理并接收从服务器发送的消息。服务器需要使用路由键向代理(在代理上交换)广播消息,并且此路由键将绑定到队列,客户端将使用相同的键(一些常见会话)订阅此交换。

    【讨论】:

    • 为什么? Web 套接字已经可以完成所有需要的通信。您无需添加其他技术。
    • @EJP 为了使您的套接字通信异步且可扩展,您总是需要一个代理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多