我正在使用libwebsockets来运行websocket服务器和客户端(实际上在同一个可执行文件中).有没有办法优雅地关闭连接?
我知道我可以在我的回调函数中返回一个负int来使连接中止,但这更像是一个错误发生的事情.在一些随机博客上的一些示例代码中,我找到了对函数的引用,libwebsocket_close_and_free_session但在库代码中不存在(不再是?).
理想情况下,我希望能够在回调处理程序中关闭与被调用者之间不同的连接(即解释像"关闭其他连接"之类的命令).
在以前版本的libwebsockets中,公共API具有该libwebsocket_close_and_free_session功能.
之前的测试代码用于关闭连接,例如
if (mirror_lifetime == 0) {
fprintf(stderr, "closing mirror session\n");
libwebsocket_close_and_free_session(context,
wsi_mirror, LWS_CLOSE_STATUS_GOINGAWAY);
Run Code Online (Sandbox Code Playgroud)
但是新的测试代码使用了返回-1方法,因此我认为这是预期的优雅方法
mirror_lifetime--;
if (!mirror_lifetime) {
fprintf(stderr, "closing mirror session\n");
return -1;
}
Run Code Online (Sandbox Code Playgroud)
该函数仍然存在于库代码中,但它现在位于private-libwebsocket.h文件中.我不确定您是否可以从代码中访问它(或应该访问它).如果可能,它将是您的完美API,因为只要您有struct libwebsocket *wsi指针,您就可以关闭其他连接.
| 归档时间: |
|
| 查看次数: |
4007 次 |
| 最近记录: |