使用 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连接
如何使用 STOMP 从 Spring WebSocket 服务器向 WebSocket 客户端发送消息?