2

我是 C++ 的新手,对 web 协议或 websockets 几乎一无所知,所以这看起来很荒谬。

我制作了 100% ajax 的网站,并希望包含 websockets。Fastcgi++ 是我对 ajax 需求所希望的一切,但它没有 websockets,我选择 websocket++ 而不是 libwebsockets,因为 websocket++ 或多或少是一个简单的#include,所以我认为我可以将它合并到 fastcgi++ 中。

我想我已经弄清楚了 fastcgi++,看起来大部分操作都发生在Fastcgipp::Request会话Fastcgipp::Http::Sessions数据http://www.nongnu.org/fastcgipp/doc/2.1/a00005.html中;但是,我认为我必须对 websocket++ 做同样的事情server::handler来处理 websocket https://github.com/zaphoyd/websocketpp/wiki/Creating-Applications-using-WebSocket--,现在我迷路了。

输入我对 c++ 的完全缺乏经验:我想我必须使用虚拟继承,但我不知道。另外,如果我什至可以正确地将两者“子类化”,我如何确保它们不会相互超越?

请向我展示 websocket++ 如何使用 fastcgi++ 的会话管理的基本示例。

4

1 回答 1

4

HTTP 请求/响应工作流无法处理 WebSocket 连接。为了在常规 HTTP 请求和 WebSocket 请求中使用 fastcgi++ 之类的东西,它需要有某种方法来识别 WebSocket 握手并将其传递给另一个处理程序,而不是将其作为 HTTP 处理。我在其文档中没有看到明显的那种通过模式,但我可能会遗漏一些东西。

如果存在这样的功能,WebSocket++ 可以在流模式下使用,它会禁用其所有网络元素,只处理从另一个网络库输入的字节流。

一些替代方案:

  • WebSocket++ 支持 HTTP 直通。这基本上与上面描述的相反。WebSocket++ 将用作网络层。它将处理传入的 WebSocket 连接并将 HTTP 请求传递给其他子系统。
  • WebSocket++ 和 fastcgi++ 可以在不同的端口或不同的主机名上运行。这可以在同一个程序或单独的程序中完成。将客户端请求定向到适当的主机/端口。

免责声明:我是WebSocket++的作者

于 2013-03-06T13:45:06.140 回答