NodeJS Einaros WS 连接超时

2023-11-23

我在用埃纳罗斯WS模块与Node JS在一台计算机上(server)当我使用另一个连接时它工作正常(client)电脑。

如果我插入网络电缆,ws.on('close', function()...没有解雇,我正在寻求建议是否:

  • 我必须实现我自己的 ping/pong,或者

  • 有一个内置功能可以自动处理此问题。


Einaros WS 确实能够发送大多数浏览器和套接字框架都可以理解的 Ping 和 Pong 帧。我在 iOS 上使用 Socket Rocket 进行了测试,它在理解 Einaros 的 Ping 帧方面没有任何问题。您必须想出应用程序特定的逻辑,即 ping 的频率,以及您可以容忍多少次错过的 pong。 Einaros WS 具有 ping() 和 pong() 函数来发送 ping 或 pong。您收听“pong”事件以了解何时收到客户端的响应。以下是我在代码中执行此操作的方法:

wss.on("connection", function(ws) {
    console.log("websocket connection open");
    ws.pingssent = 0;
    var interval = setInterval(function() {
        if (ws.pingssent >= 2) {// how many missed pings you will tolerate before assuming connection broken.
            ws.close();
        } else {
            ws.ping();
            ws.pingssent++;
        }
    }, 75*1000);// 75 seconds between pings
    ws.on("pong", function() { // we received a pong from the client.
        ws.pingssent = 0; // reset ping counter.
    });
});

对于 Socket Rocket,客户端不需要任何代码。因此兼容的浏览器和客户端将自动响应 Pongs。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NodeJS Einaros WS 连接超时 的相关文章

随机推荐

  • 如何使用 StoryBoard 在 iPad 上的 Popover 内显示 UIDatePicker?

    我已经实现了在弹出窗口中显示日期选择器 以编程方式执行此操作 如下所示UIPopover 中的 UIDatePicker 但我一直在尝试在界面生成器中执行此操作 我已经制作了一个名为 DatePickerViewController m 的
  • 在 android 中使用 handler 和 postDelayed 暂停

    我对 Android 编程很陌生 所以请原谅我的新手 我正在尝试创建一个非常简单的活动 该活动将在布局中间有一个 TextView 并且每隔几秒切换到不同的文本 例如 TextView 会说 text1 暂停几秒钟 然后说 text2 然后
  • Facebook graph api 照片上传到粉丝页面相册

    我已经获得了使用此代码的照片上传功能
  • Hadoop 作业失败,资源管理器无法识别 AttemptED

    我正在尝试在 Oozie 工作流程中聚合一些数据 但是聚合步骤失败 我在日志中发现了两个有趣的点 第一个是一个似乎重复出现的错误 容器完成后 它会被终止 但会以非零退出代码 143 退出 它完成了 2015 05 04 15 35 12 0
  • .NET - 从代码设置电源选项

    我想用 C 编写非常简单的代码 一个简单的 2 按钮应用程序 它允许我更改盖子关闭时所采取的操作 从 睡觉 到 不行动 反之亦然 我发现它以某种方式连接到 WMI 但没有关于如何实现这一点的实际信息 非常感谢您的帮助 Thanks 这是一篇
  • 正则表达式 - 前瞻断言

    我在前瞻断言 方面遇到问题 例如我有这样的表达 Win 2000 它匹配Win 如果表达式是这样的Win2000 Win2000fgF 我有下一个表达 d a z 它匹配数字和小写字母 例如 45dF 4Dd 但我不知道 为什么它有效并匹配
  • ServerManager 如何获取站点在磁盘上的物理路径?

    如何获取磁盘上站点的物理路径 using ServerManager serverManager new ServerManager var sites serverManager Sites foreach Site site in si
  • 目前最好的垃圾邮件过滤算法

    目前检测垃圾邮件的最佳方法是什么 尤其是手机短信 有资源或者比较分析吗 研究监督学习技术是件好事 多项研究表明 多项式朴素贝叶斯分类器已被用于垃圾邮件过滤 并取得了巨大成功 如果它适用于垃圾邮件过滤 那么它也应该适用于短信过滤 您需要的是一
  • Flutter - 错误:没有为该类定义 getter X

    我有课TripController包含私有字段 updatedAccount 我创建了一个吸气剂以便从外部获取 class TripController final String accountId final BuildContext c
  • 为什么“代数数据类型”在名称中使用“代数”?

    当我学习 Scala Haskell 时 我看到有一个概念代数数据类型 我已经阅读了维基百科的解释 但我仍然有一个问题 为什么它的名称中使用 代数 一词 它和 代数 有什么关系吗 简而言之 我们必须考虑代数和类型之间的关系 Haskell
  • 使用 Jest 和 @testing-library/react-native 测试 React Native 项目时出现“SyntaxError:无法在模块外部使用 import 语句”错误?

    每当我跑步时都会遇到错误npm test FAIL App test js 测试套件运行失败 Jest encountered an unexpected token This usually means that you are tryi
  • 将对象从 Activity 传递到 Fragment

    我有一个Activity它使用一个Fragment 我只是想从中传递一个对象Activity to the Fragment 我怎样才能做到呢 到目前为止我见过的所有教程都是从资源中检索数据 EDIT 让我们更精确一点 我的活动有一个Lis
  • Android Studio 3.0 beta2

    当我构建项目时 出现以下错误 错误 com android builder merge DuplicateRelativeFileException 在操作系统独立路径 META INF app debug kotlin module 中找
  • 如何使用 sf 按因子构建/绘制多边形的凸包?

    我有一个物种出现的数据集 我试图通过制作凸包将其转换为出现的区域 我可以手动执行此操作 即一次一个物种 但我真的很希望能够通过物种名称自动处理它 可以在此处找到精简的示例数据集 https pastebin com dWxEvyUB 这是我
  • CSS 中的文本替换属性如何工作?

    我正在参加 upwork 考试 在那里我得到了以下问题 考虑以下代码 body text replace a b b c 如果实现文本替换样式 以下字符串的输出是什么 安迪住在咖啡馆后面 ndy 住在 CBFE 后面 辛迪住在 ccfe 后
  • 使用 Ant 预编译 JSP 的最佳方法是什么

    我试图找出使用 Ant 预编译将部署到 Oracle 应用服务器的 JSP 的最佳方法 即使我正在部署到 Oracle 应用程序服务器 我也想避免使用 Oracle 版本的 Ant Oracle 的 JSP 编译器位于 ORACLE HOM
  • 如何修改android主/详细活动中的虚拟内容?

    我将修改 eclipse 在主 详细模式中生成的项目 我找不到办法做到这一点 特别是 我会从 xml res values arrays 资源文件中获取项目 这是java文件 package com ga termeapp dummy im
  • 如何将String对象转换为Date对象? [复制]

    这个问题在这里已经有答案了 如何将 String 对象转换为 Date 对象 我想我需要做这样的事情 Date d some conversion String 任何帮助将不胜感激 SimpleDateFormat dateFormat n
  • 使用 HTML / UTF-8 字符作为光标

    我希望能够在图像悬停时使用双箭头字符作为光标 我可以只添加图像作为自定义光标吗 cursor url images my cursor png auto http designerstoolbox com designresources h
  • NodeJS Einaros WS 连接超时

    我在用埃纳罗斯WS模块与Node JS在一台计算机上 server 当我使用另一个连接时它工作正常 client 电脑 如果我插入网络电缆 ws on close function 没有解雇 我正在寻求建议是否 我必须实现我自己的 ping