在以前版本的 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);
但是新的测试代码使用 return -1 方法,所以我认为这是预期的优雅方法
mirror_lifetime--;
if (!mirror_lifetime) {
fprintf(stderr, "closing mirror session\n");
return -1;
}
该函数仍然存在于库代码中,但它现在位于private-libwebsocket.h
文件中。我不确定您是否可以在代码中从那里访问它(或应该访问它)。如果可以的话,这对您来说将是完美的 API,因为只要您有struct libwebsocket *wsi
指针,您就可以关闭其他连接。