sockjs-node/info,node.js报错
node.js速度课程简介:进入学习
本文运行环境:Windows7系统,nodejs版本nodejs10.16.2,Dell G3电脑。
如何解决sockjs-node 报错问题?
sockjs-node接口报错解决方案
项目背景
接手别人的angular项目时(vue.js也可能遇到这个问题),nginx被配置为解决跨域前端。项目启动后,后台ws报错,如下图所示:
问题定位:
我上网查找错误原因,发现sockjs-node是nodejs的浏览器热加载和本地通信的接口,此时热加载功能失效。所以判断错误的原因是这个通信接口访问的是nginx代理的9097端口,而不是实际服务启动的8082端口,所以无法通信。
解决方案:
在nginx上配置这个9097端口,让/sockjs-node可以正常代理到本机的实际端口,从而解决问题。
具体措施:在nginx中增加nginx配置
http {
包括mime.types
default_type应用程序/八位字节流;
maphttp _ upgradeconnection _ upgrade {
默认升级;
关闭;
}
服务器{
听9097;
server_name本地主机;
位置/SOC kjs-节点{
proxy _ pass http://0 . 0 . 0 . 0:8082;
proxy _ set _ header Upgrade $ http _ Upgrade;
proxy_set_header连接$ connection _ upgrade
}
}注:以上内容最重要的是反向代理的配置中增加了以下两行,其他部分和普通HTTP反向代理没什么区别。
roxy_set_header升级$ http _ upgrade
proxy_set_header连接$ connection _ upgrade
其中的关键部分是HTTP请求具有以下标头:
升级:websocket
连接:升级
这两个字段表明请求服务器升级协议是WebSocket。
结语
实际情况中/sockjs-node报错的原因可能有很多,也可能是shadowsock代理、nodejs配置等。只要理解问题的本质,并正确地让ws访问实际的本地地址。
推荐:《nodejs视频教程》
以上是如何解决sockjs-node报错问题的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。