用户可以通过调用输出函数之一(如 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...
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. */ broadcast(nc, mg_mk_str("++ jo...
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} ...
size_t mg_ws_send(struct mg_connection *, const char *buf, size_t len, int op); size_t mg_ws_wrap(struct mg_connection *, size_t len, int op); struct mg_connection *mg_sntp_connect(struct mg_mgr *mgr, const char *url, mg_event_handler_t fn, void *fn_data); void ...
void mg_mgr_init(struct mg_mgr *mgr) 根据文档描述可以知道,他是为事件管理器mg_mgr进行初始化的,初始化工作做了什么: 1.将活动连接列表设置为NULL 2.设置默认的DNS server为IPv4和IPv6 3.设置默认的DNS查找超时 什么是mg_mgr呢? 事件管理结构,包含活动连接的列表以及一些内务管理信息 ...
mg_mgr 负责管理所有的网络连接。 2> struct mg_connection struct mg_connection { struct mg_connection *next; // 地址信息 struct mg_addr loc; struct mg_addr rem; int fd; unsigned long id; // 收发的数据 struct mg_iobuf recv; struct mg_iobuf send; // 用户定义的事件处理函数 mg_event_han...
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_EV_RECV:接收到新数据,并将数据追加到recv_mbuf.void * ev_data是 int *num_received_bytes.通常情况下事件处理程序应该在nc->recv_mbuf()检查接受到的数据,通过调用mbuf_remove()丢弃处理后的数据,必要时设置链接标志nc->flags(查看struct mg_connection).使用mg_send()向远程链接点发送数据。
mg_rpc_set_prehandler# voidmg_rpc_set_prehandler(structmg_rpc*c,mg_prehandler_cb_t cb,void*cb_arg); C Set a generic method prehandler. mg_rpc_send_responsef# boolmg_rpc_send_responsef(structmg_rpc_request_info*ri,constchar*result_json_fmt,...); ...