egg-socket.io 丢失客户端连接时的错误信息

Created on 19 Dec 2017  ·  15Comments  ·  Source: eggjs/egg

  • Node: 8.9.0
  • Egg: 2.0.0
  • Plugin: egg-socket.io
  • Plugin Verison: 4.0.1
  • Platform: windows10 x64
  • Mini Showcase Repository:

egg-socket

我在网页端和egg-socket.io做连接,当网页关闭,在触发断开连接事件的同时,eggJs会记录一个错误.
image
image
我尝试着捕捉这个错误,却找不到在哪里抛出的...

need-more-information egg-socket.io

Most helpful comment

Chrome ws 请求异常,firefox 等正常

错误位置:

目前来看是 engine.io 的问题,可以通过更换 wsEngine 解决:

exports.io = {
  init: { wsEngine: 'uws' },
};

或者不使用 websocket 协议:

var socket = io('/', {
  transports: [
    'polling',
    // 'websocket',
  ],
});

All 15 comments

应该和事件没有关系,我只是按照插件的demo走了一遍,没有配置redis.辛苦各位大佬.

@leemove 把错误日志完整的贴一些

已更新到新版本
如果用火狐浏览器刷新页面服务器端没有报错,会显示 disconnection! 然后重新connect.

但是如果用chrome:会先报错

  1. 2017-12-19 18:39:50,322 ERROR 20672 A client (undefined:NaN) error [ECONNRESET] occurred: read ECONNRESET
  2. 然后断开连接 disconnection
  3. 最后再重连connect

default

错误日志也每次也只有一行 类似这三条

2017-12-19 18:35:25,534 ERROR 36316 A client (undefined:NaN) error [ECONNRESET] occurred: read ECONNRESET
2017-12-19 18:35:31,149 ERROR 36316 A client (undefined:NaN) error [ECONNRESET] occurred: read ECONNRESET
2017-12-19 18:39:50,322 ERROR 20672 A client (undefined:NaN) error [ECONNRESET] occurred: read ECONNRESET

@leemove 能复现的代码,完整的给我一份吧,我无法复现这个问题。

@ngot 你好,想问下,如何在agent 上用 socket ?agent: true?

@Ailein agent 目前无法使用,因为设计上是和http共用的,agent无法提供http服务,那么也就无法提供 websocket 服务。

@ngot 好的,谢谢

@ngot 复现代码仓库
这个问题只有在谷歌浏览器才会有,火狐浏览器就没有了.仓库下有gif截图.

我也遇到这个问题了,目前只在chrome上发现

A client (undefined:NaN) error [ECONNRESET] occurred: read ECONNRESET
我也遇到了

ERROR 2219 A client (undefined:NaN) error [ECONNRESET] occurred: read ECONNRESET

这个怎么解决的?

一直没解决吗?

Chrome ws 请求异常,firefox 等正常

错误位置:

目前来看是 engine.io 的问题,可以通过更换 wsEngine 解决:

exports.io = {
  init: { wsEngine: 'uws' },
};

或者不使用 websocket 协议:

var socket = io('/', {
  transports: [
    'polling',
    // 'websocket',
  ],
});

@ngot 如果在agent里面创建匿名的context 是否可以使用socket呢?

Was this page helpful?
0 / 5 - 0 ratings