将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)
我正在处理一个项目,该项目需要一个简单、轻量级的事件服务器(即在用Javascript实现的不同客户端应用程序之间传递事件的服务器)。起初,Node.js和Socket.io似乎是一个完美的解决方案,但所涉及的依赖项和配置的数量让它黯然失色(有关该项目的详细信息以及为什么配置是一个问题,请参阅下文)。是否有一些经过测试且可靠的方法可以将所有这些依赖项打包到一个无需额外配置即可运行的可执行文件中?如果没有,有什么好的C/C++Websockets库可以与Mongoose之类的东西结合起来创建一个独立的可执行文件吗?
项目详细信息
基本用例:
- 主持人打开OSX机器上的服务器
- 一组10-20名用户将他们的移动设备指向主持人机器上托管的网站
- 在会议期间(约一小时)进行沟通
基本要求:
- 简单设置:主持人不是开发人员,可能几乎没有技术专长。任何需要终端或篡改配置文件或包管理器的东西都是不可能的
- 不可靠的配置:主持人的机器将在许多不同的上下文中由许多不同的用户使用。因此,系统不应该依赖于非常特定或原始的设置(即,希望避免需要设置特殊环境变量的具有大量依赖性的设置)
- 性能和安全性不是问题:服务器将在短时间内与少量受信任用户一起在本地运行,因此安全性和高性能并不重要
有趣的问题。
我知道WebSocket社区中有一些C和/或C++WebSocket库正在开发中(在IETF讨论列表中提到),如果你想朝着这个方向发展的话。
你可能会感兴趣的是,Node.js的某些部分实际上是用javascript编写的,并在构建过程中作为内置模块进行编译,但除了破解构建之外,我不知道有什么方法可以为你自己的代码实现这一点。
由于这是OSX,你可以将Node与你自己的代码和任何模块一起打包,这些模块是在你的.app中根据静态v8库构建的。这将是一个相当紧密的耦合,尽管这不是你所要求的。
也可以将扩展(或其一部分)构建为Node和v8加载的C++模块。
相关文章:
- 如何将数组从Objective-C发送到C++函数
- 在 Objective-C++ -> EXC_BAD_ACCESS Error 中使用"new"关键字
- Mac Snow Leopard 上的 Qt 5.3.2:ld:在架构x86_64 [clang、Objective-C
- 创建跨平台 C++ 触摸管理器.在 c++ 中传递 Objective-c 对象涉及代码
- C++对象作为 Objective-C++ 属性
- 将.cpp文件中的数据传递给Objective c ViewController
- 为什么这个来自 Objective-C++ 的dynamic_cast在调试中成功但在发布时失败?
- Objective-C 如何使用向量对?
- 在 Objective-C 和 Swift 之间委托问题
- Objective-C C++ 包装器 类型错误的不完整定义
- EXC_BAD_ACCESS Xcode,来自我的 Objective-C++ 和 swift 桥接标头中的 C++ 包
- 在 Objective-C++ 中应用于__weak指针时,通过关键字推导类型"auto"规则是什么?
- 如何发送(和接收)从 Swift 到 Objective c++ 再到 c++,然后备份到 Swift 的超大型浮动数组
- 使用来自Objective C的OpenCV分解同源异构图
- 如何将这行代码从C++转换为Objective-C
- Firebase:混合使用C++和Objective-C SDK可以吗
- 如何使用Visual Studio C/C++编译器(cl.exe)来预处理我的objective-C代码
- 有没有办法将函数从 objective-c++ 传递到标准 c++
- 从Objective-C中的C 标头读取变量
- Objective-C 块中的泄漏C++ shared_ptr