激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 關(guān)于Spring Boot WebSocket整合以及nginx配置詳解

關(guān)于Spring Boot WebSocket整合以及nginx配置詳解

2020-12-30 11:10西夏一品堂 Java教程

這篇文章主要給大家介紹了關(guān)于Spring Boot WebSocket整合以及nginx配置的相關(guān)資料,文中通過示例代碼給大家介紹的非常詳細(xì),相信對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。

前言

本文主要給大家介紹了關(guān)于Spring Boot WebSocket整合及nginx配置的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

一:Spring Boot WebSocket整合

創(chuàng)建一個maven項目,加入如下依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<dependencyManagement>
 <dependencies>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-dependencies</artifactId>
   <version>1.4.0.RELEASE</version>
   <scope>import</scope>
   <type>pom</type>
  </dependency>
 </dependencies>
</dependencyManagement>
 
<dependencies>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-websocket</artifactId>
 </dependency>
</dependencies>

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.wh.web;
 
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
 
public class CountWebSocketHandler extends TextWebSocketHandler {
 
 private static long count = 0;
 protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
  session.sendMessage(new TextMessage("你是第" + (++count) + "位訪客"));
 }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
package com.wh.web;
 
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
 
@Configuration
public class WebsocketConfiguration implements WebSocketConfigurer {
 public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
  registry.addHandler(new CountWebSocketHandler(), "/web/count");
 }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.wh.web;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
 
@EnableWebSocket
@SpringBootApplication
public class ServerApp {
 public static void main(String[] args) {
  SpringApplication.run(ServerApp.class, args);
 }
}

application.properties 內(nèi)容如下:

?
1
2
server.port=9080
spring.resources.static-locations=classpath:/webapp/html/

src/main/resources/webapp/html/index.html  內(nèi)容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>web socket</title>
</head>
<body>
<h1>web socket</h1>
<script type="text/javascript">
 var url = 'ws://'+window.location.hostname+':9080/web/count';
 var ws = new WebSocket(url);
 ws.onopen = function(event)
 {
  ws.send('hello');
 };
  
 ws.onmessage = function(event) {
  alert(event.data);
 };
  
 ws.onerror = function(event) {
  alert(event);
 }
</script>
</body>
</html>

最后,啟動main方法,訪問http://127.0.0.1:9080/index.html即可看到輸出

二:nginx配置

nginx 通過在客戶端和后端服務(wù)器之間建立起一條隧道來支持WebSocket。

為了使nginx可以將來自客戶端的Upgrade請求發(fā)送給后端服務(wù)器,Upgrade和Connection的頭信息必須被顯式的設(shè)置。如下所示:

?
1
2
3
4
5
6
7
8
9
10
location /web/count {
  proxy_pass http://tomcat-server;
  proxy_redirect off;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_set_header Host $host:$server_port;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
}

一旦我們完成以上設(shè)置,nginx就可以處理WebSocket連接了。

注意:必須要有  proxy_set_header Host $host:$server_port;   這個配置

否則,會報:WebSocket connection to 'ws://192.168.1.104:9080/web/count' failed: Error during WebSocket handshake: Unexpected response code: 403的錯誤

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:http://blog.csdn.net/mn960mn/article/details/52184937

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99在线精品视频免费观看20 | 夏目友人帐第七季第一集 | 99精品视频网站 | 久色视频网站 | 91色成人 | 一级成人毛片 | 韩国草草影院 | 欧美激情精品久久久久久久久久 | 国产成人精品区 | 国产1区2| 成人福利在线 | 久久蜜桃香蕉精品一区二区三区 | 一级观看免费完整版视频 | 农村寡妇偷毛片一级 | 成人国产精品一区二区毛片在线 | 男女羞羞视频在线观看免费 | 久草最新在线 | 欧洲成人免费视频 | 成人性生活视频在线播放 | 免费观看一区 | 亚洲视频在线免费看 | 免费啪视频在线观看 | 国产自91精品一区二区 | www.狠狠插.com| 久久久资源网 | 久草中文网 | 国产精品美女一区二区 | 免费一级片观看 | 毛片在线播放视频 | 久久蜜桃精品一区二区三区综合网 | 日本在线免费观看 | 国产精品免费一区二区三区都可以 | 亚洲婷婷日日综合婷婷噜噜噜 | 欧美性受xxxxxx黑人xyx性爽 | chinese 军人 gay xx 呻吟 | 毛片免费大全短视频 | 黄色网欧美 | 免费高潮在线国 | 操你啦免费视频 | 悠悠成人资源亚洲一区二区 | 日韩精品免费一区二区三区 |