Spring Boot內建Websocket長連接配接,本地配置運作無問題。打包上傳到伺服器出現問題:無法啟動、404。
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
無法啟動原因:由于SpringBoot内置tomcat需要以上代碼,使用外置Tomcat需要注釋。
404原因:使用nginx代理需要進行以下配置,否則會報404。
server
{
listen 80;
server_name api.xxx.com;
location / {
proxy_pass http://127.0.0.1:8083;
#websocket 配置
proxy_connect_timeout 4s;
proxy_read_timeout 7200s; #超過7200秒(兩小時)内沒通訊則斷連
proxy_send_timeout 12s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}