问题标签 [stomp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
730 浏览

php - STOMP:在发送消息之前检查消费者是否正在运行的方法?

我想知道是否有办法在发送消息之前检查消费者是否正在运行?我正在使用最新的 php STOMP,并且正在努力查看是否有一种方法可以在发送之前检测它是否正在运行,并且消息只是在队列中建立。

谢谢,史蒂夫

0 投票
2 回答
1555 浏览

activemq - 我应该为这个带有 websockets 的 webapp 使用什么解决方案。活动MQ?

我目前正在开发一个 web 应用程序,它需要一个 websocket 连接来接收来自服务器的事件通知。

客户端被分成组,组中的所有客户端必须接收相同的事件通知。

我认为 ActiveMQ 可能支持这种模型,为每组客户端使用不同的队列。使用 stomp 将事件推送到 ActiveMQ 也相对容易,然后为客户端使用 stomp-over-websockets。

我看到的问题是消息不应仅由一个客户端使用,而应分发给连接到队列的所有客户端。

此外,不应存储队列。如果在生成事件时客户端没有连接,那么它将永远不会收到它。

我不太了解 ActiveMQ,所以我不确定这是否可行,或者是否有另一个简单的解决方案可以用来代替编写我自己的消息服务器。

谢谢

0 投票
1 回答
1146 浏览

activemq - STOMP 协议 - 会话 ID 问题

来自 STOMP 1.0 协议描述(http://stomp.github.com/stomp-specification-1.0.html)(强调我的):

客户端发送 CONNECT 帧后,服务器将始终通过发送如下所示的帧来确认连接:

连接会话:

^@

session-id 标头是此会话的唯一标识符(尽管它实际上尚未使用)。

问题:

1)我会假设连接后返回的 session-id 值对于 STOMP 客户端和代理之间的每个连接都是唯一的。但是,由于上述描述使用了单独的术语“连接”和“会话”,因此不一定如此。是否有任何文档来解释会话 ID 和与服务器的连接之间的关系,或者有人可以确认我的假设吗?

2) 是否有任何文档可用于 session-id 值的格式?

我在谷歌上搜索这些问题的答案并没有发现任何有用的信息。我还尝试查看 ActiveMQ 5.4.2(我正在使用的代理)的源代码,但也没有找到任何明显的信息。

尽管问题 1 可能令人毛骨悚然,但我计划将 session-id 值用于客户的产品,并且真的更愿意知道而不是假设STOMP 的行为方式。

在此先感谢您的帮助。

-约翰

0 投票
1 回答
391 浏览

php - 消息禁用消费者时的 ActiveMQ/Stomp 调试

我正在挠头,试图调试一个似乎让我的一个消费者出错的 PHP 事务。在插入新消息之前,我可以通过 GREPping 进程列表来检测我的消费者是否正在运行,但无法知道之前的内容以及导致致命错误的原因。

我的 PHP 消费者大致是:

有什么方法可以捕获致命错误或任何会使其脱离无限循环的方法吗?

谢谢,史蒂夫

0 投票
1 回答
581 浏览

ruby - 没有 Rails 的 ActiveMessaging——JMS 属性名称问题

我一直在试图弄清楚如何从 Ruby 发送 JMS 消息。我在 Ruby 端使用 Stomp 将 StompConnect 设置为 JMS 和 Ruby 之间的接口。

我可以使用 telnet 与队列交谈,但无法让 Ruby 正确与 StompConnect 交谈。

现在我正在尝试使用 ActiveMessaging 进行通信,并且我已经编写了自己的 poller 脚本。创建队列并发送消息后,会抛出以下错误消息:

=> 订阅 /queue/HelloWorld(由 ApplicationProcessor 处理)没有人回应“[C4043]:属性名称中使用了非法字符 - -”}' body='javax.jms.JMSException:[C4043]:使用了非法字符在属性名称中 - - 在 com.sun.messaging.jmq.jmsclient.MessageImpl.checkValidPropertyName(MessageImpl.java 在 com.sun.messaging.jmq.jmsclient.MessageImpl.checkAndSetProperty(MessageImpl 的第 757 行的顶级.java 在 com.sun.messaging.jmq.jmsclient.MessageImpl.setObjectProperty(MessageImpl.java 在 org.codehaus.stomp.jms.StompSession.copyStandardHeadersFromFrameToMessage(StompSession.java) 的顶层第 821 行在 org.codehaus.stomp.jms.StompSession.convertFrame 的第 234 行(在 org.codehaus 的第 257 行的 StompSession.java。stomp.jms.StompSession.sendToJms(StompSession.java 在 org.codehaus.stomp.jms.ProtocolConverter.onStompSend 的第 69 行的顶层(在 org.codehaus.stomp.jms 的顶层第 260 行的 ProtocolConverter.java。协议转换器。第 680 行'>运行(第 680 行的 Thread.java '>运行(第 680 行的 Thread.java '>

现在,我设置的任何属性中都没有“-”。这可能是 Stomp 库本身的问题吗?这或多或少与我最初尝试从 Ruby 与 StompConnect 交谈时遇到的问题相同。

其他人如何通过 Ruby 与 JMS 通信来解决这个问题?提前致谢!

0 投票
1 回答
933 浏览

python - django +轨道/跺脚

我正在使用 django 服务器和轨道/stomp 服务器来编写类似聊天的东西。假设一些用户连接到轨道。当其中一个与轨道断开连接时,我如何通知其余的?我的意思是我已经尝试了以下代码(客户端的javascript - 也许这已经错了,服务器应该进行推送,对吗?):

和...一起

但这根本不起作用。然后我用

但同样没有明显的效果。我还替换end()了不同的功能,它只是将 ajax 发布到 django 服务器。但是stomp.onclose又什么也没做,window.onbeforeunload给了我一个坏掉的管道。

所以这些都是尝试实现“客​​户在放弃之前留下信息”的想法。但那失败了。

我什至不确定我是否做对了。有没有办法通知轨道/踩踏用户离开用户?所有想法将不胜感激。

编辑:也许还有另一种方式。我读过可以配置轨道服务器,以便在某人的连接关闭时使用用户的密钥对应用程序进行 http 回调。不幸的是,没有解释如何做到这一点。有人知道答案吗?

0 投票
1 回答
447 浏览

javascript - 我正在尝试与 django 和轨道进行实时聊天,但我不断收到错误

我正在关注如何设置简单的 django/orbited/stomp 实时聊天的本教程,并且我已经完全按照他的操作方式进行操作,我什至复制了他的所有代码,但我仍然觉得这个很奇怪我不明白的错误。

当我访问该网站时,我收到一条仅显示“错误”的警报。当我查看 Firebug 必须说的内容时,它告诉我以下两个错误:

我完全按照教程进行操作,但我无法弄清楚为什么会出现这些错误。我在轨道上运行:

我通过以下方式运行我的 django 开发服务器:

0 投票
1 回答
3113 浏览

spring - ActiveMQ 套接字异常

我每两个月左右就会遇到一个问题。我的 activemq 服务器死了,日志充满了 SocketExceptions。

我有一个使用 stomp 向 ActiveMQ 发送消息的 PHP 应用程序和一个使用消息的 Java 应用程序。

我在另一台服务器上有activemq,在发送/消费消息时只使用java应用程序,它从来没有像这样失败过。我认为 Stomp 有问题。

stomp 代码非常基本,不会发送任何奇怪的东西。仅设置了消息属性的消息。stomp 代码在每条消息发送后关闭连接。

我看过 lsof ,那里没有任何问题。

但是 netstat 确实有很多:

tcp6 0 0 127.0.0.1:61616 127.0.0.1:46280 CLOSE_WAIT

ActiveMQ 日志显示了很多这样的

2011-04-28 12:43:09,819 | 错误 | 无法接受连接:java.net.SocketException:打开的文件太多| org.apache.activemq.broker.TransportConnector | ActiveMQ 传输服务器:tcp://0.0.0.0:61616

我正在使用:

ActiveMQ 5.4.2、Tomcat 6.0.20、Debian 5.0.3、PHP 5.2.6、Stomp 修订版 43

0 投票
2 回答
9430 浏览

python - 轨道发射问题:“ ConfigParser.NoSectionError: No section: 'formatters'”

我正在尝试启动 Orbited,但不幸的是,我遇到了很多问题!首先,easy_install 的问题(已解决)。然后,继续按照http://mischneider.net/?p=125的说明进行操作。但是在使用时orbited -c orbited.cnf我得到以下信息:

这是我的配置文件(orbited.cnf):

(编辑:我可能需要一个 [格式] 部分?)我一无所有,而且我找到的大部分资源都指向 orbited.org,自从我对轨道感兴趣的那一天起,它就一直处于关闭状态。请帮帮我!我真的很想开始开发很酷的现场 django 应用程序!

0 投票
1 回答
2673 浏览

django - 找不到记录器“stomp.py”的处理程序

我正在尝试按照http://mischneider.net/?p=125上的说明运行 Orbited

这是错误的副本:

另外,当我加载页面时,它会给我一个错误。这是我的一些文件的选择。

索引.html:

轨道.cnf

网址:

我希望我的问题出在某个地方?感谢您的帮助:D