javascript - C语言的DDP服务器

标签 javascript c meteor sockjs

我们正在用 C 语言开发 DDP 服务器(不要问为什么 - 我们只是需要)。我们注意到 Meteor 使用 SockJS 来实现其 DDP 协议(protocol)。虽然有一些库允许我用 C 语言进行 Web 套接字,但我还没有找到任何适用于 C 语言的 SockJS 库。

SockJS 库似乎相当庞大,并且由于没有关于它如何运行的规范,因此尝试逆向工程其技巧听起来是一种非常脆弱的方法。

这让我想知道让我们支持 DDP 的最佳策略是什么。我能想到的选项很少:

  1. 我可以导入 V8 引擎并使用它在 C++ 和 JavaScript 实现之间建立桥梁(然后我可以相对轻松地将其公开给 C)
  2. 我可以将 SockJS 库 X 用于语言 Y,并使用 Python/C/JNI/... 与之交互
  3. 也许我可以强制 Meteor 仅使用网络套接字(DDP 文档似乎表明这是可能的,但我不知道如何实现)。

如果可能的话,选项 3 将是最省力的方法,但会继承 WebSocket 的问题(浏览器互操作性、公司防火墙等)。

选项 1 和 2 是可行的,但我必须包含的库的大小与我将使用的功能不成比例。

考虑到上述情况,似乎没有一个完美的解决方案。但是我想验证上述选项的可行性,并知道我是否错过了一些东西。另外,如果有人以前尝试过这个,我很想听听。

最佳答案

我用 C++ 实现了一个开源 DDP 服务器库,用于处理协议(protocol)细节。它应该与一些现有的websocket库一起使用,例如mongoose、websocketpp、libwebsockets等。

所以例如从 MeteorJs 站点调用 C++ 方法如下所示:

enter image description here

还支持从 C++ 获取实时数据。

更多信息和示例 - GitHub 上:

关于javascript - C语言的DDP服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31063728/

相关文章:

oauth-2.0 - Shopify:获取 OAuth 访问 token 的问题

meteor - 对象没有方法 'createProxyServer' meteor 崩溃

javascript - 使用 JavaScript 根据屏幕尺寸更改链接所指向的位置

javascript - Jquery 选择父 div 内的 div 元素

javascript - 如何获得 CSS 转换以应用于 React 动态生成的样式?

c - 错误 : assignment of read-only location

c - 识别程序 "before"和 "after"管道中的程序来自同一个 "toolset"

c - 特定搜索问题的网站 : using C language or not?

javascript - Jquery Accordion 关闭

javascript - MeteorJS 集合未定义