我将warmcat 的libwebsocket C 库用于小型websocket 服务器。我已经启动并运行了示例,并且可以发送数据以响应从 websocket 接收数据(例如回显发送的反向字节)。但是,我无法弄清楚如何在没有进入 libwebsocket 回调函数的情况下从服务器异步发送数据。我需要将 wsi 指针传递给 libwebsocket_write() 但除了在回调中之外,我看不到如何获取指针。
我读过 libwebsocket 不是线程安全的,我自己的经验似乎证实了这一点。
在 libwebsockets.c:line2483 中,我读到“协议回调函数 [...] 定期调用以允许异步传输。” 这正是我想要的,但我没有在我自己的代码中观察到这种情况发生,也没有找到任何方法来“打开它”。
关于如何异步写入我正在服务的 websocket 的建议?
libwebsocket 代码:http: //git.warmcat.com/cgi-bin/cgit/libwebsockets/
使用示例:http ://martinsikora.com/libwebsockets-simple-websocket-server