在没有 node.js 的情况下独立使用 socket.io

Posted

技术标签:

【中文标题】在没有 node.js 的情况下独立使用 socket.io【英文标题】:Using socket.io standalone without node.js 【发布时间】:2011-11-18 12:45:53 【问题描述】:

javascript 新手)

我正在尝试构建一个基于 JavaScript 的客户端应用程序,该应用程序通过套接字与服务器应用程序通信。我遇到了socket.io。是否可以在没有任何 node.js 依赖的情况下使用 socket.io?

我已经克隆了socket.io github并编写了一个简单的客户端html来连接到服务器(如果需要可以发布代码)。但它没有连接到服务器。

(背景信息:我们需要一个在 Win32 上运行的简单配置客户端实用程序,它与支持使用自定义数据包格式协议的套接字通信的自定义服务器进行通信。我们认为 HTML 不是通过通常的 MFC/.NET /JS/CSS 是一个更好的解决方案。为此,我考虑了以下选项:

    Titanium:工作,但需要安装运行时 HTML5 WebSocket:未得到广泛支持 - 适用于 Chrome,但需要 IE10 socket.io:试图让它工作 还有其他吗? (如有必要,可以将此问题作为单独的线程发布) )

【问题讨论】:

node-iis和socket.io一起用就行了 你用什么语言编写服务器? Guillermo Rauch 组织了一个名为“Socket.io, Sockets for the rest of us”的项目。 .js github.com/LearnBoost/socket.io-client 【参考方案1】:

建立一个成功的Socket.IO,你的自定义服务器必须遵循the spec,或者使用socket.io的其他服务器实现https://github.com/learnboost/socket.io/wiki 其他语言部分包含一些服务器实现socket.io 的

【讨论】:

非常感谢。如果可行,我很想尝试一下并接受答案。但我已经转向了其他一些事情(哦,受支配的企业界的苦难!)。我会尽快解决这个问题。非常感谢您再次付出时间和精力。 为规范点赞,但 wiki 不再可用,看来 socket.io 现在由 Automattic 维护。我找不到列出其他语言实现的等效页面。 链接断开。它重定向到:github.com/socketio/socket.io,它没有 wiki。尝试:github.com/socketio/socket.io/wiki,然后您将被重定向回 repo(此评论中的第一个链接)。答案中的第一个链接是旧版 repo,链接到此:github.com/socketio/socket.io-protocol【参考方案2】:

据我了解,您需要一个没有 node.js 的 socket.io 服务器,对吗?如果像使用跨浏览器 WebSockets 一样使用 socket.io 就足够了,我的意思在 socket.io 网站的以下示例中得到了很好的说明:

var socket = io.connect('http://localhost/');
socket.on('connect', function () 
  socket.send('hi');

  socket.on('message', function (msg) 
    // my msg
  );
);

这将使您的服务器代码非常简单。当然,您可以为您的语言找到一些 WebSockets 库,甚至可以自己编写。看看this SO问题的例子。

或者,如果您想使用 socket.io protocol,则 list of socket.io libraries 可以用于不同的语言,例如 python 和 java。

【讨论】:

【参考方案3】:

原始问题的答案中有很多杂音。让我尽可能清楚地回答这个问题。

是否可以在没有任何 node.js 依赖的情况下使用 socket.io?

简短的回答是肯定的。但是,您将具有 Flash 依赖项。您可以在 socket.io's faq.

中了解如何执行此操作

【讨论】:

以上是关于在没有 node.js 的情况下独立使用 socket.io的主要内容,如果未能解决你的问题,请参考以下文章

在没有回调的情况下使用 Node.js 流

如何在没有客户端的情况下使用 facebook 的护照在 node.js 中构建 REST 服务?

如何在没有 Node.js 服务器的情况下部署 Next.js 应用程序?

我可以在没有 node.js 的情况下使用 Ionic 来构建托管 Web 应用程序吗?

是否可以在没有准备好的语句(Node.js 和 MSSQL)的情况下防止 SQL 注入

如何使用 socks4a 从 node.js 连接到隐藏服务?