gpt4 book ai didi

c - libwebsockets : How to close connection

转载 作者:太空狗 更新时间:2023-10-29 15:29:39 25 4
gpt4 key购买 nike

我正在使用 libwebsockets同时运行 websocket 服务器和客户端(实际上在同一个可执行文件中)。有没有办法优雅地关闭连接?

我知道我可以在我的回调函数中返回一个负整数来使连接中止,但这感觉更像是在发生错误时发生的事情。在某个随机博客的一些示例代码中,我发现了对函数 libwebsocket_close_and_free_session 的引用,但它在库代码中不存在(不再存在?)。

理想情况下,我希望能够从回调处理程序中关闭一个不同的连接而不是被调用的连接(即解释一个命令,如“关闭另一个连接”)。

最佳答案

在以前版本的 libwebsockets 中,公共(public) 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 指针即可。

关于c - libwebsockets : How to close connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17403806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com