使用 Wt 框架侦听数据
Listen on data using Wt framework
在任何端口上创建带有Wt的网页都很容易,例如200.59.43.32:3333。
但是,当有人向同一端口发送数据(一些数据字符串、json 等(时,是否有一个函数(我找不到(可以侦听同一个端口。换句话说,如果有人将字符串"大量数据"数据发送到 200.59.43.32:3333,如何使用 Wt 捕获它?
编辑:如果使用纯字符串是不可能的,那么使用适当的 JSON 是否可以?
我知道我可以打开另一个端口来使用(linux(套接字/绑定等来侦听这样的字符串。
如果只是随机数据,我不可能知道你可以用 Wt 做到这一点。在这种情况下,您可以使用像HAProxy这样的反向代理解决方案,并将任何HTTP流量转发到Wt,并将任何其他流量转发到另一个套接字。
如果您谈论的是HTTP流量,那么静态资源可能是您所追求的。Wt 对 TechEmpower 框架基准的实现包含一些自定义静态资源,您可以基于这些资源进行代码。例如,有PlaintextResource
:
class PlaintextResource : public Wt::WResource {
virtual void handleRequest(const Wt::Http::Request &request, Wt::Http::Response &response) {
response.setMimeType("text/plain");
response.addHeader("Server", "Wt");
response.out() << "Hello, World!";
}
};
您可以使用request
变量检索有关请求的任何数据,请参阅 Wt::Http::Request。
您可以像这样使此资源可访问:
int main(int argc, char** argv) {
try {
Wt::WServer server(argv[0]);
server.setServerConfiguration(argc, argv, WTHTTP_CONFIGURATION);
PlaintextResource plaintextResource;
server.addResource(&plaintextResource, "/plaintext");
if (server.start()) {
int sig = Wt::WServer::waitForShutdown(argv[0]);
std::cerr << "Shutdown (signal = " << sig << ")" << std::endl;
server.stop();
}
} catch (Wt::WServer::Exception& e) {
std::cerr << e.what() << "n";
return 1;
} catch (std::exception& e) {
std::cerr << "exception: " << e.what() << "n";
return 1;
}
}
如果要发送纯字符串,则需要打开一个套接字。HTTP应用程序使用HTTP协议与客户端通信,因此要执行此"Wt-way",您应该执行HTTP请求,GET或POST。
据我了解,您需要创建一个WResource
并使用WServer::addResource()
在服务器中注册它,以给它一个固定的 URL。之后,重新实现访问 HTTP 请求数据的WResource::handleRequest()
。
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 如何在ECS框架中更新组件数据和通知系统
- 使用 Wt 框架侦听数据
- 在哪里可以从Android框架中获取原始的PCM数据
- 如何在不重写整个视频文件的情况下仅替换流中的一个数据框架?(ffmpeg)
- Qt:模型/视图框架上的数据转换
- 如何迫使Avcodec使用不一致的框架数据平面
- Kinect 从框架数据转换为深度数据,然后再转换回来
- 在不可靠的网络中,是否有任何框架可以将一个对等体上生成的数据与所有其他对等体同步
- QWebView,多个框架/页面共享相同的会话数据
- 是否可以在c++Google测试框架中将数据传递到TestEventListener中
- 系统配置框架提供类来查看数据包吗?
- 数据框架库
- 将带有XML命令和大量内存项目数据的本地c++服务器移植到webservice.如何做以及使用哪个框架
- 使用IOBluetooth框架的音频数据污染了我的RFCOMM通道
- 具有通用get/set实现的属性树数据结构框架/库