网络插座服务器的NodeJS端实现(Web Sockets server side implemen

2019-07-05 15:49发布

我不禁感慨这个必须回答的地方,但我该死如果我能找到它。 问题的部分可能是有在客户端太多的讨论,我看到树木,不见森林。

无论如何,抛开道歉,这是我想做的事情。 我需要一个独立于平台的服务器端实现的WebSockets的。 我想它在运行的NodeJS。

现在,我所关于socket.io这个话题会谈发现有99%。 但到目前为止,我可以告诉大家,这不是WebSockets的,它本身就是一个特殊的“额外”的协议。 我需要“标准由(还未)”一些作品。 有一个很好的理由,这是不可转让的,相信我这句话,让我们只是节省带宽:)

所以,我想WebSocket的,但是这需要(或看似需要Python和,更糟的是,Visual Studio中)在Windows上运行。 我需要的东西是平台无关的,不需要这样的特别的东西。

我也试过节点的WebSocket服务器,但我不能得到这在所有的工作。 主页上的例子失败对我来说。 这似乎接受连接,但客户并不这么看,双方都没有获得送什么,以及客户可以立即看到连接的关闭。 事实上,所有我曾经得到的是一个“连接”的回调,然后它看来是不行了。 运行在调试模式下没有告诉我任何有用的东西,除了对一些对象或其他不具有flush()方法的一些内部错误。 我半怀疑这是一家倒闭的项目?

所以,我的想法。 是否有可能说服socket.io由(非)纯粹是工作符合规范的的WebSockets? 有没有办法让节点的WebSocket服务器的行为,我已经无法找到。 是否有办法一轮的WebSocket Visual Studio的依赖,或者是有一些其他的基于的NodeJS工具,满足我的所有要求?

哦,一两件事,我会为我使用我的常规文档服务想与“连接”和平共处的工具。

TIA,托比

Answer 1:

我有你面对的那一刻,当我试图使用Socket.IO在不同的平台,而无需客户端的直接端口完全相同的问题(和没有动机端口它自己)。

我结束了我的移动代码中使用WS这是节点的基于标准的WebSocket实现,而不从socket.io加了糖。

它的工作原理非常好,在我的情况在几个不同的平台,但你需要返工大多数连接/重新连接代码等。

网站: 链接

GitHub的: 链接

NPM: npm install ws



Answer 2:

Socket.io底层使用WS所以你可能会碰到在Windows相同的安装问题。 你可能会发现,它抱怨,你需要安装Visual Studio 2010的ws组件工作。

但是,您可以通过配置使用的Visual Studio版本node-gyp是通过环境变量运行C ++编译器。

例子:

  • GYP_MSVS_VERSION=2012的Visual Studio 2012
  • 设置GYP_MSVS_VERSION=2013e (和“e”表示“表达版”)

有关完整列表,请参阅- https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

这是一个痛苦的的NodeJS Windows用户,因为它假定你有Visual Studio中的一个副本安装很多非开发最终用户将永远不会有。 所以我游说Joyent公司的鼓励他们包括网络插座为核心节点的组成部分,也是运送一个GNU gcc编译器的安装的NodeJS这样我们就可以永久性地解决这个问题,而不是一部分要强制Windows节点用户调整自己的环境或下载任何东西。

随意在添加您的投票:

  • https://github.com/joyent/node/issues/8005#issuecomment-50545326

注:Joyent的团队已经表示,socket.io将回落到编译时使用较慢的执行ws失败。 换句话说,你的代码仍然可以运行 - 只是没有那么快。 这是不明确的最终用户执行,因为它显示在安装过程中导致用户的红色错误文本假定安装失败的安装取决于socket.io或WS任何应用程序的时候,其实它会工作虽然进展缓慢。



文章来源: Web Sockets server side implementation for NodeJS