在嵌入式平台上聊天*服务器*

标签 c node.js embedded chat libpurple

我目前正在构建一个聊天服务器(meebo 风格)。

架构是这样的。

  1. Bitlbeelibpurple在主机 B 上。它是数据中心上的一个普通服务器。
  2. 用户通过主机A 上的网络服务器(就像meebo)与bitlbee 通信。此 Web 服务器的后端维护聊天 session 。它只是将用户命令转换为正确的 bitlbee 命令并发送回主机 A

这里最重要的部分是主机 A 将部署在嵌入式 Linux 中。

我有2个问题

  1. 为了保持聊天 session 持续,我正在考虑使用 .因为创建具有持久连接的实时应用程序要容易得多。但我怀疑它是否支持这样的平台。
  2. 如果我使用 C 而不是 node.js(我没有使用任何 Web 服务器),我可以通过 libirc 与主机 A 上的 irc 服务器通信。但是我如何在 C 中实现所有 Web 服务器功能(如 session 、url/cookie/post 数据解析等)?

此外,如果您认为我的方法有误或有更好的方法,请告诉我如何改进此架构?

注意:这不是高容量聊天服务器。

最佳答案

如果在嵌入式平台上构建 V8/Node.js 令人望而却步,那么下一个最好的办法就是采用 Node 的事件循环和平台层(libuv)和 HTTP 解析器(http-parser),它们都用C 并以此为起点。这些库与用于构建 Node.js 的库相同,因此它们经过实战测试,将为您提供所需的性能特征。

Ryan Dahl,Node.js 的作者,准确地演示了 how to use libuv and http-parser to build an asynchronous web server in C .

关于在嵌入式平台上聊天*服务器*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420743/

相关文章:

c - 如何使用 CMake 链接到 C 数学库?

c - 尝试从用户读取输入整数,不想接受 C 中的字符

c - 假设 char *p = "hello world",那么在 '\0' 之后是否存在任何 'd' ?

node.js - 如果 mongodb 类型是字符串,查询仅返回文档

wpf - 哪个图形子系统用于触摸屏信息亭开发

c++ - 结构体变量名称的含义是什么?

javascript - 无法在 javascript (node.js) 中实例化对象

javascript - 没有 Node 的常规 Web 应用程序中的 Jade Lang

c++ - 更有效地在微 Controller 上对 C++ 进行基准测试

c - 如何在 Nucleo 上连接 GDB?