使用 Java WebSocket 客户端向 Apache Apollo 主题发布消息

Posted

技术标签:

【中文标题】使用 Java WebSocket 客户端向 Apache Apollo 主题发布消息【英文标题】:Publish messages using Java WebSocket client to Apache Apollo topic 【发布时间】:2013-05-19 21:14:32 【问题描述】:

我已经设置了一个 Apache Apollo 实例,并且我连接了一个 javascript 客户端并订阅了“chat.general”。这在 Apollo [web] 控制台中显示为“主题”。

我正在尝试使用 Java 客户端向该主题发布消息,以便我的 JavaScript 客户端可以接收它。我尝试使用 netty-tools 没有运气,我能够连接到 apollo 然后发送一条消息,但它似乎从未到达 Apollo 并且我从未收到任何错误。

现在我正在尝试使用 async-http-client 解决同样的问题,我可以连接,但我的消息似乎没有到达 chat.general 主题。

我正在使用以下 URI 使用 async-http-client(链接到上面)设置“WebSocket”:

ws://admin:password@localhost:61623/topic/chat.general

有没有其他人幸运地从 Java 客户端发布到 Apache Apollo 上的 WebSocket 主题?如果是这样,如何:)

【问题讨论】:

【参考方案1】:

不知何故,我迷路了,以为我需要通过 WebSocket(来自 Java)连接才能向主题发送消息,错了!

我刚刚像往常一样连接到 JMS 主题,发布了一条消息,哇哦,JS 客户端看到了!

【讨论】:

【参考方案2】:

我使用 Apollo 代理成功地将 STOMP 用作 WebSocket 协议之上的发布/订阅协议。

作为 Java 生产者和消费者,我使用了 Stampy (http://mrstampy.github.io/Stampy/),但如果您需要 java 脚本消费者,可以查看 stomp.js (https://github.com/jmesnil/stomp-websocket/)。

【讨论】:

你能提供一个例子来说明你是如何使用 Stampy 来实现 Stomp over WS 的吗?我已经尝试了各种方式,但我无法让它工作..我在 java SE 环境中工作

以上是关于使用 Java WebSocket 客户端向 Apache Apollo 主题发布消息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用java服务器将消息发送到特定的websocket连接

Java WebSocket

Websocket阻止来自服务器的传入请求

如何使用 STOMP 从 Spring WebSocket 服务器向 WebSocket 客户端发送消息?

如何使用 faye-websocket-ruby 向 websocket 客户端发送拒绝连接

cxf服务端启动报错java.lang.NoSuchFieldError: QUALIFIED 急!望解答!