CNode

在用egg-socket时,遇到了一点问题,麻烦懂的老哥们看下

问答
Ddengnan123发布于8 年前最后回复8 年前2 回复5936 浏览0 收藏

前端控制台一直报错如下: image.png 后台这边也报错 image.png

查看回复

回复 (2)

D
dengnan123#1·8 年前

文档里面是这样的

框架是以 Cluster 方式启动的,而 socket.io 协议实现需要 sticky 特性支持,否则在多进程模式下无法正常工作。

由于 socket.io 的设计,在多进程中服务器必须在 sticky 模式下工作,故需要给 startCluster 传递 sticky 参数。

修改 package.json 中 npm scripts 脚本:

{
  "scripts": {
    "dev": "egg-bin dev --sticky",
    "start": "egg-scripts start --sticky"
  }
}

我是启动参数是这样

    "start": " ets && tsc -p tsconfig.json && egg-scripts start --daemon --title=egg-server-ts_api",
    "stop": "egg-scripts stop --title=egg-server-ts_api",
    "restart": "egg-scripts stop --title=egg-server-ts_api && egg-scripts start --daemon --title=egg-server-ts_api",
    "dev": "egg-bin dev -r egg-ts-helper/register",

是不是我需要在 dev 里面加上 这段参数 egg-bin dev --sticky

T
thonatos#2·8 年前

https://github.com/eggjs-community/demo-egg-socket.io

记得先启动 redis,然后再跑示例。

# Redis
docker-compose -f docker-compose.dev.yml up -d

# Egg.js app
npm run dev
参与回复
登录后即可参与回复。登录