webscoket 链接失败

webscoket 链接失败

server 后端服务,当用 npm run start 跑起来的时候,

https://img1.sycdn.imooc.com//climg/620240d5095b30dd07810209.jpg

获取模板的接口正常,

https://img1.sycdn.imooc.com//climg/62024097090ffe0218780186.jpg

但是脚手架连接socket服务会报错:

https://img1.sycdn.imooc.com//climg/620240b509b5bada15560636.jpg


如果用 npm run dev 跑的话,websocket服务可以正常连接:

https://img1.sycdn.imooc.com//climg/62024170095138f407990501.jpg

https://img1.sycdn.imooc.com//climg/6202417d093ad71406120143.jpg

本地 node 版本 v14.8.1

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
扬_灵 2022-02-09 09:05:23

同学你好,在start命令中添加 --sticky参数试一下。

  • 提问者 回忆的 #1

    老师,加上这个参数可以了,这个参数是起的什么作用?

    2022-02-09 11:40:28
  • 扬_灵 回复 提问者 回忆的 #2

    同学你好,egg框架是以 Cluster 方式启动的,而 socket.io 协议实现需要 sticky 特性支持,否则在多进程模式下无法正常工作。由于 socket.io 的设计,在多进程中服务器必须在 sticky 模式下工作,故需要给 startCluster 传递 sticky 参数。你可以看一下这篇文档https://www.w3cschool.cn/eggjslesson/eggjslesson-uc9r35z4.html 

    2022-02-09 17:50:22
  • 提问者 回忆的 回复 扬_灵 #3

    https://img1.sycdn.imooc.com//climg/6204870409fb2fa518670947.jpg

    老师,我这边碰到了新的问题,在加入 sticky参数的时候,安装依赖那一步好像没有执行,导致 vue-tsc依赖没安装,构建的时候报错,但是如果是 yarn dev 启动的后端服务,就没有这个问题。

    这里的 npm 有个警告信息:

    npm

     WARN lifecycle The node binary used for scripts is /var/folders/fl/z_gsqbb96tlcfqd6d78h7grw0000gn/T/yarn--1644463663615-0.27741205337162067/node but npm is using /Users/gjs/.nvm/versions/node/v14.18.1/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.


    2022-02-10 11:51:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师