安装 libwebsockets
libwebsockets 是一个 C语言 编写的跨平台的 WebSocket 库,可用于创建 WebSocket 协议相关的服务器和客户端。它是一个灵活且易于使用的库,可以快速构建一个高性能的 WebSocket 应用程序。由于其简单、轻量级的设计,它非常适合构建基于嵌入式系统或处理大量连接的高负载服务器应用。
我们可以这么去安装 libwebsockets:
git clone https: //github.com/warmcat/libwebsockets.git
cd libwebsockets
mkdir build
cd build
cmake ..
make && sudo make install
pkg-config --modversion libwebsockets
添加 libwebsockets.h
#include <libwebsockets.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
逻辑代码编写
#include <libwebsockets.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// WebSocket 数据的结构体,用于存储每个会话的数据
struct per_session_data {
};
// WebSocket 服务器消息的回调函数
int callback(struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len) {
switch (reason) {
case LWS_CALLBACK_ESTABLISHED: // 处理新连接事件
// 添加计时器,每秒发送一个时间戳
lws_callback_on_writable(wsi);
break;
case LWS_CALLBACK_SERVER_WRITEABLE: // 处理发送数据事件
// 发送时间戳
time_t t = time(NULL);
char timestamp[20];
sprintf(timestamp, "%ld", t);
lws_write(wsi, timestamp, strlen(timestamp), LWS_WRITE_TEXT);
lws_callback_on_writable(wsi);