Spring STOMP从应用程序的任何地方发送消息
我正在使用Stomp来构建一个应用程序,以通过WebSocket进行代理消息.我正在尝试将消息从服​​务器发送到客户端,而无需从应用程序中的任何地方提供请求.我在网上找到了两个单独的选择,用于从应用程序中的任何地方发送消息. 第一个在第20.4.5节: @Controller public class GreetingController { private SimpMessagingTemplate template; @Autowired public GreetingController(SimpMessagingTemplate template) { this.template = template; } @RequestMapping(value="/greetings", method=POST) public void greet(String greeting) { Str
0 2024-03-21
编程技术问答社区
无法自动连接。没有找到SimpMessagingTemplate类型的豆子。
我基本上通过遵循文档中提供的指南来配置春季的Webocket. 我目前正在尝试将消息从服​​务器发送到客户端,如" 从任何地方发送消息" 按照示例,您可以自动自动化一个名为SimpMessagingTemplate的类 @Controller public class GreetingController { private SimpMessagingTemplate template; @Autowired public GreetingController(SimpMessagingTemplate template) { this.template = template; } @RequestMapping(value="/greetings", method=POST) public void greet(String greeting) { String text = "["
10 2024-03-21
编程技术问答社区
阿帕奇配置。Websockets Proxy WSS request to WS backend
事先感谢您的任何帮助. 我试图使用WSS和后端WS服务器流程使用Apache作为Web浏览器之间的代理. 浏览器 apache RabbitMQ Stomp 我已经在Apache中正确设置了HTTPS,并通过443. 使用页面. 在Apache网站配置:.../sites-enabled/site.conf RewriteEngine on RewriteCond %{SERVER_NAME} =MYSERVER.com [OR] RewriteCond %{SERVER_NAME} =www.MYSERVER.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] SSLEngine On SSLPro
4 2024-02-27
编程技术问答社区
Spring Boot Web插座,Stomp未向特定用户发送消息
我正在尝试使用Spring Boot&Stomp协议实现基本聊天应用程序.我无法通过SimpMessagingTemplate.convertAndSendToUser 向特定用户发送消息 我的所有消息都被推到所有连接的插座上. 我的控制器: @Controller public class MessageController { private final SimpMessagingTemplate simpMessagingTemplate; /** * Constructor for object * * @param simpMessagingTemplate */ public MessageController(final SimpMessagingTemplate simpMessagingTemplate) { this.simpMessagingTemplate =
0 2024-02-24
编程技术问答社区
使用Stomp.js的Angular2
我正在寻找Stomp.js或类似的Libs.我没有发现使用Angular2.RC6/Final示例或LIB.我该如何重新定位stomp.js? 在我先前使用Angular 1.X的项目中,我使用了袜子的Stomp.js. 我被卡住了.. 更新 我尝试了此示例应用程序,但没有效果.这个示例已过时. https://github.com/sjmf/ng2-stompjs-demo 解决方案 如果您使用的是新版本的Angular2 cli > 我建议使用 Stomp-over-websocket服务对于Angular 2 安装此NPM软件包 npm i --save stompjs npm i --save sockjs-client npm i --save ng2-stomp-service in typings.d.ts add stompjs和sockjs-client模块声明 declare module 'stompjs'; d
2 2024-02-21
编程技术问答社区
用Spring框架在android中建立一个Stomp客户端的服务器端
我正在开发一个Android应用程序,该应用程序将数据与春季配置的码头服务器交换.为了获得更具动态的Android应用程序,我正在尝试将WebSocket协议与Stomp Messages一起使用. 为了实现这些东西,我在春季配置Web插座消息代理: @Configuration //@EnableScheduling @ComponentScan( basePackages="project.web", excludeFilters = @ComponentScan.Filter(type= FilterType.ANNOTATION, value = Configuration.class) ) @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override
6 2024-01-29
编程技术问答社区
只从RabbitMQ中使用 react\stomp 摄取N条消息,分别对它们进行应答,然后退出
我正在使用PHP React \ Stomp的RabbitMQ.我有两个队列 - 一个是"待办事项",另一个是"完成".消费者从" todo"中读取,完成工作,ack邮件,然后将其发布到"已完成"队列中. 是否有任何方法可以确保我只消耗n消息中的n消息(并单独使用)然后退出?这样做的主要原因是我们不想拥有长期运行的消费者,我们希望在n个消息后重新启动它们. 解决方案 您可以为目的地设置预摘要计数: 所有订阅的预取计数设置为无限 默认.这可以通过设置预摘要标头来控制 在订阅所需整数计数的框架上. https://www.rabbitmq.com/stomp.htomp.html 因此,仅消耗十条消息,请添加标题 prefetch-count:10 到SUBSCRIBE框架. 您可以将ACK模式设置为client-individual,以获取消息手册确认.
2 2024-01-26
编程技术问答社区
RabbitMQ 3.1.3 和丢失的时间戳头
如果邮件中缺少,是否可以配置代理插入时间戳标头?因此,如果发布客户端不添加时间戳标头,经纪人可以用时间戳值插入与交易所收到消息的那一刻的时间戳值匹配吗?我应该在哪里寻找该配置?还是一个坏主意? 解决方案 为了回答您的问题,没有办法配置经纪人来插入时间戳.无需在AMQP规范中需要一条消息才能知道何时到达经纪人,并请记住,只有在经纪人收到消息时,就不会在经纪人端手动插入时间戳,而不是出版. 如果您做到这一点,则可以编写自己的RabbitMQ插件来执行此操作,但我不建议这样做.相反,我建议强迫您的制作人将时间戳包含在其消息属性中. 资源: rabbitmq消息消息到达时间戳 rabbitmq amqp.basicproperties java api 其他解决方案 截至2015年,原始问题有新的答案. 这个插件 请记住,将有一些最小的开销,因为它将连接所有被排队的消息.
2 2024-01-26
编程技术问答社区
从Stomp/AMQP中选择哪一个?
我将Node.js用作JMS主题的客户端.有两个协议可在主题上建立连接. 这是sto脚和AMQP.我会在 http:////er.wikipepedia.org/wiki.org/wiki/advanced_message_message_meque_quequeugitototot http://en.wikipedia.wikipedia.org/wiki/wiki/wiki/streaming/streaming_text_text_text_text_oriented_messeed_messge_message_message_message_messgice_prot 另一点是该协议以将其表示为相互作用而感到自豪.可互操作术语是否意味着如果某人 想要取消特定消息经纪实施方式说Apache Active MQ,而是想插入WebSphere MQ,Transition 将是平滑的(提供支持AMQP/Stomp或任何其他Wire Levl协议)? 解决方案 您可能会看到性
24 2024-01-26
编程技术问答社区
接收"在SimpleString中读取错误,长度= []大于可读取的bytes = []"
我正在尝试使用Apache ActiveMQ Artemis 2.24发送和接收消息,并使用Python使用Stomp发送消息,并在Java中接收消息. Stomp.py版本为8.0.1. Python版本为3.10.4. Java版本为1.8.0_342. 如果我运行基于Java的消息消费者并使用Java代码发送消息,则一切正常.但是,如果我使用Stomp.py向队列发送消息,则在接收方中得到以下例外: Exception in thread "main" java.lang.IndexOutOfBoundsException: Error reading in simpleString, length=1864388729 is greater than readableBytes=10 at org.apache.activemq.artemis.api.core.SimpleString.readSimpleString(SimpleString.java:1
14 2024-01-10
编程技术问答社区
如何更新Wildfly 10.1.0Final Apache Artemis 1.1.0到Apache Artemis 1.3
我已经安装了wildfly 10.1.0.最终我在javascript中创建了一个踩踏的stomp,直接连接到Artemis中的主题. 我连接了两个客户端,但是当我关闭或不订阅两个客户之一时,其他点recive消息. 我找到了一个完全描述相同问题的邮件列表. 一个称为" Johndament"的用户提到的是自动创建功能解决此错误(在v1.3中).然后" ed ed kaltenbach"解决了从v1.1.0中更新ActiveMQ Artemimis版本的问题,该版本由Wildfly 10.1.0. -Final发货到v1.3 可以帮助我更新版本和建议? 这些是下载后的文件,并从官方网站上取消拉链ActiveMQ 1.3: 解决方案 以下说明可更新为Artemis 1.3. 请注意,我还尝试了Artemis 1.5,这无效. 1)将Apache-Artemis-1.3.0/bin/lib/*复制到Wildfly-10.1.0.final \ fi
6 2024-01-10
编程技术问答社区
Java WSS连接无法创建传输异常
我对此很困扰. 我想订阅一个ActiveMQ主题. ActiveMQ在CentOS机器上工作,不是Local -Host .我可以使用TCP,HTTP协议消费消息.代码; public static void main(String[] args) throws JMSException { PropertyUtils.loadPropertyFile(); Properties receiverProperties = PropertyUtils.getreceiverProperties(); // URL of the JMS server String url = (String) receiverProperties.get("receiver.connection.url"); // Name of the queue we will receive messages from String subject =
6 2024-01-10
编程技术问答社区
ActiveMQ Java STOMP客户端收到SocketTimeoutException
有一个在CentOS机上工作的ActiveMQ服务器.我可以使用OpenWire JMS客户端与TCP和HTTP连接并消费消息.但是,当我尝试使用ActiveMQ测试stomp客户端时,它会在connection.receieve上抛出此异常; java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at j
4 2024-01-10
编程技术问答社区
用于ActiveMQ的PHP stomp选择器
$topic = '/topic/orders'; $selector = "orders IN ('1233', '345', '22222')"; $username = 'username'; $pass = 'pass'; $connection = new Connection($brokerUri); $client = new Client($connection); $client->setLogin($username, $pass); $stomp = new StatefulStomp($client); $stomp->subscribe($topic,$selector); 它将在ActiveMQ上订阅该主题,但订阅将以Convert_String_expressions前缀: 请参阅附件. 如何修复此前缀? 解决方案 ActiveMQ" Classic"是硬编码的,以前缀为convert_string_expressions:的S
8 2024-01-10
编程技术问答社区
ActiveMQ JobScheduler删除消息
是否可以通过PHP通过Stomp订阅ActiveMQ经纪人并访问JobsCheduler(随后通过其JobID删除一条计划的消息)? 我有一组由2个Web服务器产生的队列" prod"的预定消息,并且在同一Web服务器上发生事件时(意识到Jobids),希望将其从JobsCheduler中删除,以便消费者(用Java编写,位于多个远程服务器上)未收到它们. 我正在使用ActiveMQ Broker v5.9.1,然后Stomp连接到代理表格php. 解决方案 您可以通过Stomp在ActiveMQ中管理计划的作业.我在上写这篇文章使用ActiveMQ Java客户端进行此操作,但原理是相同的.您可以发送带有特定标头集的消息,该消息将在计划的消息上运行. 要删除使用Java客户端安排的消息,您将执行以下操作: Message remove = session.createMessage(); remove.setStringProperty(
4 2024-01-10
编程技术问答社区
ActiveMQ Spring Stomp:我怎样才能改变我的现有代码以创建持久的订阅?
我在项目中创建了一个正在起作用的通知系统.我的实际代码是: 我的客户端(JavaScript): let connectWebSocket = () => { socket = new SockJS(context.backend + '/myWebSocketEndPoint'); stompClient = Stomp.over(socket); stompClient.connect({},function (frame) { stompClient.subscribe('/topic/notification', function(response){ alert(response); }); }); } connectWebSocket(); 服务器(带有弹簧的Java) public class WebSocketConfig extends AbstractWebSocketMessageBrokerConf
12 2024-01-10
编程技术问答社区
PHP Stomp: 读取一个队列中的所有消息
我需要在ActiveMQ队列中使用PHP找到一条特定消息并将其删除. afaik这样做的唯一方法是阅读当前排队的所有消息,并添加我感兴趣的一条消息.( php手册中的示例stomp :: ack 或多或少地做同一件事,他们没有读取所有消息,但只有ack只有一个匹配). 所以,我写了此代码(显然这只是相关部分): class StompController { private $con; public function __construct($stompSettings) { try { $this->con = new Stomp($stompSettings['scheme']."://".$stompSettings['host'].":".$stompSettings['port']); $this->con->connect(); $this->con-
4 2024-01-10
编程技术问答社区
Java ActiveMQ + Stomp + SSH:非法反射访问方法Sun.security.ssl.sslsocketimpl.sethost
我正在将一个简单的Java JMS QueueBrowser客户端写入 AmazonMQ ,它运行 ActiveMQ stomp ssh>>>>>>>>>(因此,他的运输是stomp+ssl> : // java import java.util.Enumeration; // jms import javax.jms.IllegalStateException; import javax.jms.JMSException; import javax.jms.Queue; import javax.jms.QueueBrowser; import javax.jms.QueueSession; import javax.jms.Session; import javax.jms.ConnectionFactory; import javax.jms.Connection; // activemq import org.apache.activemq.ActiveMQConnec
4 2024-01-10
编程技术问答社区
对于这个带有websockets的webapp,我应该使用什么解决方案。ActiveMQ?
我目前正在开发一个需要WebSocket连接以接收服务器事件的通知的WebApplication. 客户分组分开,组中的所有客户都必须接收相同的事件通知. 我认为ActiveMQ可能可以支持该模型,并使用每个组客户群使用不同的队列.使用Stomp将事件推向ActiveMQ也相对容易,然后为客户使用Stomp-Over-websockets. 我看到的问题是消息不应仅由一个客户端消耗,而应分配给连接到队列的所有客户. 也不应存储队列.如果生成事件时未连接客户端,则将永远不会收到. 我不知道ActiveMQ太多了,所以我不确定是否可以使用,或者是否有其他简单的解决方案可以使用而不是编写我自己的消息服务器. 谢谢 解决方案 ActiveMQ 5.4.1本地支持Websockets(就像Stomp,Jms等一样). 有排队的概念(您提到了这些),也有主题的概念. 在队列中,一个消费者将在一个主题中收到一条消息 它涉及所有订户.请参阅:/how-d
4 2024-01-10
编程技术问答社区