您当前的位置: 首页 >  websocket

鱼儿-1226

暂无认证

  • 0浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

c++基于mongoose websocket客户端

鱼儿-1226 发布时间:2021-09-29 10:13:07 ,浏览量:0

注意事项:

"wss://localhost:8000/websocket"; 对于 wss 域名,mongoose不支持,需要使用 ws 域名。

原因:wss域名需要证书授权认证。

#include "mongoose.h"

static const char *s_url = "ws://localhost:8000/websocket";

// Print websocket response and signal that we're done static void fn(struct mg_connection *c, int ev, void *ev_data, void *fn_data) {   if (ev == MG_EV_ERROR) {     // On error, log error message     LOG(LL_ERROR, ("%p %s", c->fd, (char *) ev_data));   } else if (ev == MG_EV_WS_OPEN) {     // When websocket handshake is successful, send message     mg_ws_send(c, "hello", 5, WEBSOCKET_OP_TEXT);   } else if (ev == MG_EV_WS_MSG) {     // When we get echo response, print it     struct mg_ws_message *wm = (struct mg_ws_message *) ev_data;     printf("GOT ECHO REPLY: [%.*s]\n", (int) wm->data.len, wm->data.ptr);   }

  if (ev == MG_EV_ERROR || ev == MG_EV_CLOSE || ev == MG_EV_WS_MSG) {     *(bool *) fn_data = true;  // Signal that we're done   } }

int main(void) {   struct mg_mgr mgr;        // Event manager   bool done = false;        // Event handler flips it to true   struct mg_connection *c;  // Client connection   mg_mgr_init(&mgr);        // Initialise event manager   c = mg_ws_connect(&mgr, s_url, fn, &done, NULL);     // Create client   while (c && done == false) mg_mgr_poll(&mgr, 1000);  // Wait for echo   mg_mgr_free(&mgr);                                   // Deallocate resources   return 0; }  

关注
打赏
1604459285
查看更多评论
立即登录/注册

微信扫码登录

0.0396s