用户可以通过调用输出函数之一(如 mg_send()、mg_printf() 或协议特定函数(如 mg_ws_send))发送回数据。输出函数将数据附加到发送缓冲区。当 Mongoose 成功将数据写入套接字时,它会丢弃来自 struct mg_connection::send 的数据并发送 MG_EV_WRITE 事件。 事件处理函数 每个连接都有一个与之关联的事件处理程序...
intev,void* ev_data,void*fn_data) {89time_t tmNow;10time(&tmNow);11if(ev ==MG_EV_POLL)12{13//time_t tNow;14//time(&tNow);15//TRACE("%d\r\n", tNow);16//if (c->next)17//mg_ws_send(c->next, nullptr, 0, WEBSOCKET_OP_PING);18if...
intev,void*ev_data,void*fn_data) {if(ev==MG_EV_READ) {for(structmg_connection*t=c->mgr->conns;t!=NULL;t=t->next) {if(t->label[0]=='W')mg_ws_send(t, ...);// IMPORTANT: fn() must set the label on WS connections} ...
Search or jump to... Search code, repositories, users, issues, pull requests... Provide feedback We read every piece of feedback, and take your input very seriously. Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your...
mg_send_websocket_frame(c, WEBSOCKET_OP_TEXT, buf, strlen(buf)); } } static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) { switch (ev) { case MG_EV_WEBSOCKET_HANDSHAKE_DONE: { /* New websocket connection. Tell everybody. */ ...
struct mg_iobuf recv; struct mg_iobuf send; // 用户定义的事件处理函数 mg_event_handler_t fn; // 预定义的协议专用的事件处理函数 mg_event_handler_t pfn; ... }; mg_connection 代表一个网络通讯连接,这个结构体可以处理 TCP、UDP、HTTP、WebSocket、MQTT等协议。
当mongoose成功地向socket写入数据的时候,mongoose会将此数据从send_mbuf中丢弃,并发送MG_EV_SEND事件。当链接关闭的时候,发送MG_EV_CLOSE事件。 事件处理函数: 每个链接都有其与之相关的事件处理函数。此事件处理函数由用户自己实现。事件处理函数是mongoose程序的关键,因为其定义了应用程序的具体行为。事件处理函数...
struct mg_connection *mg_http_listen(struct mg_mgr *mgr, const char *url, mg_event_handler_t fn, void *fn_data); 创建一个HTTP服务 参数: mgr:一个事件管理器 url:附加一个本机的IP和监听的端口,http://0.0.0.0:8000 fn:回调函数,当有监听到有连接进来的时候,就执行回调函数 ...
// license, as set out in https://www.mongoose.ws/licensing/ #ifndef MONGOOSE_H #define MONGOOSE_H #define MG_VERSION "7.4" #ifdef __cplusplus extern "C" { #endif #ifndef MG_ENABLE_SOCKET #define MG_ENABLE_SOCKET 1 #endif #ifndef MG_ENABLE_MBEDTLS #define MG_ENABLE...
// license, as set out in https://www.mongoose.ws/licensing/ // // SPDX-License-Identifier: GPL-2.0-only or commercial #ifndef MONGOOSE_H #define MONGOOSE_H #define MG_VERSION "7.16" #ifdef __cplusplus extern "C" { #endif #define MG_ARCH_CUSTOM 0 // User creates it...