info,node.js报错

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: