原文 https://blog.csdn.net/moshowgame/article/details/80275084
追加
vue 集成 websocket ,打開連接時,403 (Forbidden)
POST http://localhost:9999/api/im/endpoint/808/xhr_send?t=55546963 403 (Forbidden)
后台是spring cloud,解決辦法:
package com.imobpay.sqlinspection.config; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.simp.config.MessageBrokerRegistry; import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer; import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker; import org.springframework.web.socket.config.annotation.StompEndpointRegistry; import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer; /** * */ @Configuration @EnableWebSocketMessageBroker //通過EnableWebSocketMessageBroker 開啟使用STOMP協議來傳輸基於代理(message broker)的消息,此時瀏覽器支持使用@MessageMapping 就像支持@RequestMapping一樣。 public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints(StompEndpointRegistry registry) { //endPoint 注冊協議節點,並映射指定的URl //注冊一個Stomp 協議的endpoint,並指定 SockJS協議 registry.addEndpoint("/endpointWisely").setAllowedOrigins("*").withSockJS(); //注冊一個名字為"endpointChat" 的endpoint,並指定 SockJS協議。 點對點-用 registry.addEndpoint("/endpointChat").setAllowedOrigins("*").withSockJS(); } @Override public void configureMessageBroker(MessageBrokerRegistry registry) {//配置消息代理(message broker) //廣播式應配置一個/topic 消息代理 registry.enableSimpleBroker("/topic"); //點對點式增加一個/queue 消息代理 registry.enableSimpleBroker("/queue","/topic"); } }
注冊endpoint 時 加上 .setAllowedOrigins("*")