使用libwebsocket搭建websocket服务器实例

 

                                                       webcomm与前端的通讯-websocket服务器操作流程

 

#include <libwebsockets.h>
#include <pthread.h>
#include <string.h>

#define MAX_PAYLOAD_SIZE	(4096)

/** 开启确认才有重发的机制 */
typedef struct comm_packet {
	void 		*content; 				/* is malloc'd */
	size_t 		content_len;
	uint8_t		enable_ack;				/* 是否需要响应 0:不需要响应 1:需要响应 */
	uint8_t		retry_cnt;				/* 重发的次数(ms)    */	
} comm_packet_t;

/* one of these created for each message */
typedef struct msg {
	comm_packet_t	*payload; /* is malloc'd */
	size_t 			len;
} msg_t;

/* one of these is created for each client connecting to us */
struct per_session_data__cetwebsocket {
	struct per_session_data__cetwebsocket *pss_list;
	struct lws *wsi;
	uint32_t tail;
	
	struct lws_ring *ring; 		/* ringbuffer holding unsent messages */	
};

/* one of these is created for each vhost our protocol is used with */
struct per_vhost_data__cetwebsocket {
	struct lws_context *context;
	struct lws_vhost *vhost;
	const struct lws_protocols *protocol;

	struct per_session_data__cetwebsocket *pss_list; /* linked-list of live pss*/
};

static int
callback_protocol_cetwebsocket_server(struct lws *wsi, enum lws_callback_reasons reason,
			void *user, void *in, size_t len);

#define LWS_PLUGIN_PROTOCOL_CETWEBSOCKET \
	{ \
		"cet-webserver", /* "cet-webserver" */ \
		callback_protocol_cetwebsocket_server, \
		sizeof(struct per_session_data__cetwebsocket), \
		2048, \
		0, NULL, 0 \
	}

static struct lws_protocols sg_protocols[] = {
	{ "http", lws_callback_http_dummy, 0, 0 }, 
	LWS_PLUGIN_PROTOCOL_CETWEBSOCKET,
	{ NULL, NULL, 0, 0 } /* terminator */
};

static int sg_interrupted = 0;

/* destroys the message when 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
搭建一个类似QQ的聊天服务器,可以考虑使用开源的即时通讯框架,如Openfire、ejabberd等。这些框架支持各种聊天协议,如XMPP、WebSocket等。 以下是使用Openfire搭建聊天服务器的步骤: 1. 安装Java环境 Openfire是基于Java开发的,所以需要先安装Java环境。在Linux系统中,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install default-jre ``` 2. 下载Openfire 在Openfire官网下载最新版本的Openfire,然后将下载的文件解压到指定目录。 ``` wget https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.6.0_all.deb sudo dpkg -i openfire_4.6.0_all.deb ``` 3. 启动Openfire 在终端中输入以下命令启动Openfire服务: ``` sudo /etc/init.d/openfire start ``` 4. 配置Openfire 在浏览器中输入`http://localhost:9090`,进入Openfire的管理界面。在第一个页面中,选择“安装Openfire”,然后按照向导进行配置。 5. 创建用户 在Openfire管理界面中,进入“用户/用户”页面,点击“创建新用户”按钮,创建一个或多个用户。 6. 安装聊天客户端 为了能够连接到Openfire服务器,需要安装一个聊天客户端。可以选择开源的Pidgin、Spark等客户端,也可以选择商业的客户端,如Spark IM、Miranda等。 7. 连接服务器 在聊天客户端中,输入Openfire服务器的IP地址和端口号(默认为5222),输入创建的用户名和密码即可连接到服务器,开始聊天。 以上就是使用Openfire搭建聊天服务器的基本步骤。需要注意的是,为了确保服务器的安全性,需要进行相应的安全配置和防火墙设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值