将 Node.js+Socket.io 包装成 OSX 可执行文件的可靠方法? (或用作替代品的 C/C++/Objective-C 库)

Posted

技术标签:

【中文标题】将 Node.js+Socket.io 包装成 OSX 可执行文件的可靠方法? (或用作替代品的 C/C++/Objective-C 库)【英文标题】:Reliable way to wrap Node.js+Socket.io into OSX executable? (or C/C++/Objective-C libraries to use as alternatives) 【发布时间】:2012-03-29 14:57:24 【问题描述】:

我正在做一个项目,该项目需要一个简单、轻量级的事件服务器(即在用 javascript 实现的不同客户端应用程序之间传递事件的服务器)。起初,Node.js 和 Socket.io 似乎是完美的解决方案,但所涉及的依赖项和配置的数量使一些亮点黯然失色(有关项目的详细信息以及为什么配置是一个问题,请参见下文)。是否有一些经过测试且可靠的方法可以将所有这些依赖项打包成一个可执行文件,无需额外配置即可运行?如果没有,是否有任何好的 C/C++ Websockets 库可以与 Mongoose 之类的东西结合起来创建一个独立的可执行文件?

项目详情

基本用例:

主持人在其 OSX 计算机上打开服务器。 一组 10-20 名用户将他们的移动设备指向主持人计算机上托管的网站 在会话期间(大约一个小时)进行通信

基本要求:

简单设置:版主不是开发人员,可能几乎没有技术专长。任何需要终端或摆弄配置文件或包管理器的东西都是行不通的。 不可靠的配置:版主的机器将在许多不同的环境中被许多不同的用户使用。因此,系统不应依赖于非常具体或原始的设置(即,希望避免具有大量依赖项而需要设置特殊环境变量的东西) 性能和安全性不是问题:服务器将在短时间内与少量受信任的用户在本地运行,因此安全性和高性能并不重要。

【问题讨论】:

我很想知道你最终为此做了什么。 @Jess Bowers:没什么。只有在不会占用太多开发人员时间的情况下,这才被认为是有用的。在做了一些基础研究之后,它似乎太复杂了,不值得花钱(这并不是说没有简单的方法——我们只是无法在规定的时间内找到它)跨度> 【参考方案1】:

有趣的问题。

如果您想朝那个方向发展,我知道 WebSocket 社区(在 IETF 讨论列表中提到)中有一些 C 和/或 C++ WebSocket 库正在开发中。

您可能想知道 Node.js 的某些部分实际上是用 javascript 编写的,并在构建过程中作为内置模块编译,但我不知道有什么方法可以为您自己的代码短破解构建。

由于这是 OSX,您可以在 .app 中将 Node 与您自己的代码和针对静态 v8 库构建的任何模块一起打包。这将是一个相当紧密的耦合,但并不完全符合您的要求。

也可以将您的扩展(或其中的一部分)构建为由 Node 和 v8 加载的 C++ 模块。

【讨论】:

以上是关于将 Node.js+Socket.io 包装成 OSX 可执行文件的可靠方法? (或用作替代品的 C/C++/Objective-C 库)的主要内容,如果未能解决你的问题,请参考以下文章

我可以通过 node.js 中的 socket.io 将文件上传到服务器吗?

如何将 Asterisk ARI 与 socket.io 和 Node.js 一起使用

使用 Socket.IO 将 Node.JS 服务器连接到另一个 Node.JS 服务器?

node.js + socket.io:拍卖网站开发

增加到 node.js/socket.io 的最大连接

socket.io 手动将用户添加到房间(node.js)