我使用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传输? 谢谢!
答案 0 :(得分:0)
请创建控制器类
@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/