spring boot下使用WebSocket javax時報錯:Error during WebSocket handshake: Unexpected response code: 404

spring boot下使用WebSocket javax時報錯:

WebSocket connection to 'ws://localhost:8888/websocket' failed: Error during WebSocket handshake: Unexpected response code: 404

代碼以下:

前端

//得到WebSocket對象
var websocket = new WebSocket("ws://localhost:8888/websocket");

後端

@ServerEndpoint(value = "/websocket")
@Service
public class MsgWebSocket {
    /**
     * 收到消息
     *
     * @param message 客戶端發送過來的消息
     * @param session
     */
    @OnMessage
    public void onMessage(String message, Session session) {
        ...
    }
}

解決方案:

step1. pom中引入jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

step2. 添加Bean ServerEndpointExporter

@Component
public class WebSocketConfig {

    /**
     * 使用spring boot時,使用的是spring-boot的內置容器,
     * 若是要使用WebSocket,須要注入ServerEndpointExporter
     *
     * @return
     */
    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}

完整代碼:前端

git@github.com:valsong/blog-demo.git
中的websocket-javax項目
相關文章
相關標籤/搜索