websocket连接建立后Spring如何工作?
Posted
技术标签:
【中文标题】websocket连接建立后Spring如何工作?【英文标题】:How does Spring work after websocket connection established? 【发布时间】:2018-02-14 08:46:29 【问题描述】:我有使用 Spring 的 Java 项目。我有几个控制器。我还创建了 WebSocket:
@ServerEndpoint("/websockettest")
public class WebSocketTest
private static Set<Session> peers = Collections.synchronizedSet(new HashSet<Session>());
@OnMessage
public String onMessage(Session peer, String message)
return message;
@OnOpen
public void onOpen (Session peer) throws IOException
peers.add(peer);
@OnClose
public void onClose (Session peer)
peers.remove(peer);
您能否告诉我,在建立 websocket 连接后,我对控制器的所有请求都会通过这个 websocket 传输吗? 谢谢!
【问题讨论】:
自己尝试一下,而不是问过于宽泛而无法回答的问题。 【参考方案1】:请创建一个控制器类
@Controller
class AccountsController
@GetMapping("/homepage")
//code here....
套接字无法访问它,您可以为套接字创建单独的端点,如下所示
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception
Thread.sleep(1000); // simulated delay
return new Greeting("Hello, " + message.getName() + "!");
但是,您可以为 Websocket 映射和 URL 映射使用相同的控制器
你也可以查看网站了解更多关于spring WebSocket的信息,答案解释的很笼统所以我只是总结一下,
请也看看这个 https://spring.io/guides/gs/messaging-stomp-websocket/
【讨论】:
以上是关于websocket连接建立后Spring如何工作?的主要内容,如果未能解决你的问题,请参考以下文章
安全的 Websocket 连接 (wss:) 在 tomcat / spring 中中止,而 https 正在工作
由于 CORS,Spring 和 React websocket 聊天无法正常工作