建立websocket连接后,Spring如何工作?

时间:2018-02-14 08:46:29

标签: java spring websocket

我使用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 个答案:

答案 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/