春季启动中websocket的互斥锁
Posted
技术标签:
【中文标题】春季启动中websocket的互斥锁【英文标题】:Mutex for websocket in spring boot 【发布时间】:2017-11-08 11:00:37 【问题描述】:我有一个问题,我不知道要搜索什么。 我有一个 spring boot 应用程序,它通过带有 stomp javascript 客户端的 web socket 广播消息。问题是我是否可以在消息发送时锁定消息,因为我不希望任何人同时发送另一条消息。我想做的系统就像一个红绿灯。 如果你能给我一个例子或寻找什么。
【问题讨论】:
可能你会想看看像 Kafka 等消息队列系统。 【参考方案1】:您应该使用synchronized
关键字并等待客户端响应。 synchronized
关键字确保只有一个线程可以同时执行该方法。而且您需要客户端响应,因为您可以按两秒间隔顺序发送两条消息,但您的客户端会同时收到它们。响应可能是一些虚拟的 ok 消息。
public class Traffic
synchronized void Send()
// write message to websocket
// read response from websocket
【讨论】:
同步方法应该在控制器哪里或者websocket配置上? 控制器上的@duricuvlad以上是关于春季启动中websocket的互斥锁的主要内容,如果未能解决你的问题,请参考以下文章
春季启动从 1.2.0 升级到 2.1.3 后,Websocket 推送通知不起作用
如何在 laravel 应用程序中使用 docker 容器启动运行 websockets