创建WebSocket测试项目
发布时间:2025-06-24 20:16:12 作者:北方职教升学中心 阅读量:165
启动测试。nginx.在conf配置文件中,添加以下配置内容:
#user nobody;worker_processes 1;error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; #gzip on; keepalive_timeout 65; # 定义变量两种请求协议兼容HTTP和WebSocket map $http_upgrade $connection_upgrade { default keep-alive; # 默认 keep-alive,表示HTTP协议。第三步:寻找在线Websocket测试工具,查看【ws://127.0.0.1:9990/demo/websocket】能否成功连接?

我在这里用的是【https://wstool.js.orgWebsocket在线测试工具,如下图所示,我的后端接口地址是[/demo/websocket】,location配置为[//websocket】肯定不行。创建WebSocket测试项目。综上所述,我当地创建了一个WebSocket测试项目,如下所示:
- 1.4、#xff0c;例如:让客户每30s向服务器发送一次信息,客户端向服务端发送消息,然后Nginx就知道这个WebSocket连接是有用的,它不会断开。创建WebSocket测试项目。
浏览器客户端方向【ws://127.0.0.1:9990/demo/websocket】建立连接Nginx服务器接收后,location定义的规则将与#xff0匹配c;此时会将【ws://127.0.0.1:9990/demo/websocket】地址转发到【ws://127.0.0.1:8880/demo/websocket】这个地址这就完成了WebSocket接口的转发功能。
起初,在这种情况下如果我们的客户端再次发送消息会抛出异常,因为Websocket连接已经断开,不能发消息那么如何解决这个问题呢?f;??
针对上述问题,可以有以下两种解决方案:
1.5.1、这里有一个问题,不止一个后端服务,有可能启动两个服务,使用不同的端口来区分,客户端不知道填写哪个port端口,后来想到的解决方案是通过Nginx服务器转发WebSocket接口,让Nginx决定调用哪个Websocket接口,而客户端只需要与Nginx服务器交互即可。
1.5、WebSocket超时问题
Nginx配置默认情况下WebSocket接口的超时时间为60s༌如果在60s中,没有使用Websocket发送消息,此时将断开WebSocket连接。
。我的后端接口地址是[/demo/websocket】,location配置为[//websocket】肯定不行。1.5、WebSocket接口无法转发。Nginx配置WebSocket。设置超时间。WebSocket接口无法转发。
。
案例下载地址:【https://download.csdn.net/download/qq_39826207/88883292】、到此,nginx服务器转发WebSocket接口配置完成。
第一步:启动本地Websocket测试项目。#xff1a;从上图中我们可以知道Websocket接口服务提供8880端口9990端口连接到客户端c;如果端口不一致,,本文结束了,主要介绍如何通过Nginx服务器将客户端的WebSocket接口转发到后端服务。客户端请求地址。
一、设置超时间。客户请求地址。
1.3、
注意:假设超时时间是60s,30s后没有通信按理说,30s后没有通信断开连接,但是, 'websocket' upgrade; # 若是 websocket 请求,则升级协议 upgrade。
1.5、
案例下载地址:【https://download.csdn.net/download/qq_39826207/88883292】。
。为了让Nginx能够代理转发Websocket接口我们需要为Websocket接口地址配置location信息,将proxy_pass转发到特定的后端接口服务。启动测试。Nginx配置内容。

为了模拟Nginx能否成功转发Websocket接口在这里,
,ip和port是后端服务提供的,/xxx/yyyy是后端服务中提供的特定WebSocket接口地址。WebSocket超时问题。,Websocket仍成功连接,这说明我们配置的Nginx转发功能已经成功。
第二步:启动Nginx服务。
Nginx提供【proxy_read_timeout】属性,该属性可用于设置websocket接口的超时时间,默认为60s,然后我们可以将其设置为5分钟如下所示,后端接口服务提供。我参考了一些在线配置,location后面使用的[/websocket】,发现怎么也转发不了,测试后才知道,那些在线配置它们对应的后端Websocket接口地址[/websocket】,所以他们可以转发成功。建立心跳机制(推荐)
Nginx配置WebSocket。如果客户端向服务端发送消息此时,超时时间将重新计算,超时时间又会变成60s。
1.5.2、注意点:location后面定义的地址应该和后端接口提供的websocket地址完全一样,不能使用模糊匹配否则,
注意:上述配置中有两个内容需要配置,见下图中的红框内容:
1.2、
注意:不建议使用这种配置由于proxy__read_timeout属性治标不治本c;5分钟以上还是没有通讯怎么办???连接还会断开吗?
1.5.2、
1.5.1、后端接口服务提供。# 例如:我在这里提供的WebSocket接口地址是 /demo/websocketlocation /demo/websocket { proxy_pass http://127.0.0.1:8880; # 转发到后端接口 proxy_read_timeout 300s; # 设置超时时间默认是60s proxy_http_version 1.1; proxy_set_header Host $host; # 不要错过这个配置,必须要 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade;}。
1.2、
目录。 今天的工作,遇到需求,这种需求可能是前端和后端需要Websocket通信,因为Websocket接口,客户端需要知道通信的接口地址,WebSocket接口的地址格式为:【ws://ip:port/xxx/yyy】。 这篇文章主要介绍如何通过Nginx服务器将客户端的WebSocket接口转发到后端服务[知识星球]。 # 例如:我在这里提供的WebSocket接口地址是 /demo/websocket location /demo/websocket { proxy_pass http://127.0.0.1:8880; # 转发到后端接口 proxy_read_timeout 20s; # 设置超时时间默认是60s proxy_http_version 1.1; proxy_set_header Host $host; # 不要错过这个配置,必须要 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }}。 1.3、 1.4、WebSocket超时问题。建立心跳机制(推荐)
1.1、配置内容如下a;