问题标签 [gloox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
win32gui - 如何在 win32 gui 应用程序中使用另一个事件循环
我是 win32 api 编程新手,我正在使用 win32 api 和 gloox xmpp 库为 windows 平台编写 xmpp 客户端。gloox 有自己的事件循环,而 windows GUI 也有消息循环。我不太清楚如何一起使用这两个循环。
来自 gloox 文档:
阻塞与非阻塞连接对于某些类型的机器人,阻塞连接(默认行为)是理想的。机器人所做的只是对来自服务器的事件做出反应。然而,对于最终用户客户端或任何带有 GUI 的东西来说,这远非完美。
在这些情况下,可以使用非阻塞连接。如果调用 ClientBase::connect( false ),则函数在连接建立后立即返回。然后程序员有责任开始从套接字接收数据。
最简单的方法是定期调用 ClientBase::recv() 并使用所需的超时(以微秒为单位)作为参数。默认值 -1 表示调用阻塞,直到收到任何数据,然后自动解析。
窗口消息循环:
窗口过程:
gloox 阻塞连接
gloox 非阻塞连接
我不太清楚我该怎么做
以所需超时(以微秒为单位)作为参数定期调用 ClientBase::recv()
带计时器?还是多线程编程?还是有更好的解决方案?
任何建议表示赞赏
谢谢