C++代码实现,通过libhv库,创建一个websocket客户端,并通过open,close,getdata接口获取192.168.1.103,端口1818上的数据,不用hwebsocket.h
时间: 2024-03-12 15:49:32 浏览: 145
c++使用websocket代码Demo.可直接编译
以下是一个使用libhv库创建websocket客户端并获取数据的示例代码:
```cpp
#include "hloop.h"
#include "hsocket.h"
#include "hssl.h"
#include "http_parser.h"
#include "ws_parser.h"
#define WEBSOCKET_KEY "dGhlIHNhbXBsZSBub25jZQ=="
#define WEBSOCKET_ACCEPT "s3pPLMBiTxaQ9kYGzzhZRbK+xOo="
void on_ws_upgrade(hio_t* io, http_parser* parser) {
ws_write_upgrade_response(io, parser, WEBSOCKET_ACCEPT);
}
void on_ws_message(hio_t* io, ws_frame* frame) {
printf("Received message: %.*s\n", (int)frame->payload_len, frame->payload_data);
}
int main() {
hloop_t* loop = hloop_new(0);
hio_t* io = hv_websocket_new(loop);
hio_set_uri(io, "ws://192.168.1.103:1818");
hio_set_upgrade(io, on_ws_upgrade);
hio_set_message(io, on_ws_message);
hio_open(io);
hloop_run(loop);
hloop_free(&loop);
return 0;
}
```
这个示例代码中,使用hv_websocket_new函数创建了一个websocket客户端,并通过hio_set_uri函数设置连接的地址,通过hio_set_upgrade函数设置升级握手的回调函数,通过hio_set_message函数设置接收消息的回调函数,最后通过hio_open函数打开连接。在接收到消息时,on_ws_message函数会被调用。
注意,在运行这个示例代码之前,需要先编译libhv库并将其链接到本代码中。
阅读全文