WebSocket是一种在单个TCP连接上进行全双工通信的协议。允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
一、参考网址:
libwebsockets官网: https://libwebsockets.org/
libwebsockets的API:https://libwebsockets.org/lws-api-doc-master/html/modules.html
https://libwebsockets.org/libwebsockets-api-doc.html
cmake 去除openssl库依赖.vs2010编译.
建立双工通道,接下来就可以进行收发数据, 当连接成功之后,通过不断询问service 是否有回调事件,来处理对应的回调事件.
// ConSoleWebS_Test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
// Consolelibwebs.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include "include/libwebsockets.h"
#include <signal.h>
#include <string.h>
#include <map>
using namespace std;
map<long,string>map_wsi_token;// 存wsi指针为key, token为字符串
static volatile int exit_sig = 0;
#define MAX_PAYLOAD_SIZE 10 * 1024
void sighdl(int sig) {
lwsl_notice("%d traped", sig);
exit_sig = 1;
}
/**
* 会话上下文对象,结构根据需要自定义
*/
struct session_data {
int msg_count;
unsigned char buf[LWS_PRE + MAX_PAYLOAD_SIZE];
int len;
bool bin;