如何在XMPP中设置超时?据我搜索,我发现有两次超时。
- App尝试与Server建立连接的超时时间。此超时是可配置的:
醇>
[_xmppStream connectWithTimeout:kTimeOutForChat error:&error]
- 醇>
XMPPStream
检查邀请批准/与Spark
连接后拒绝的超时时间在库文件中。
我正在寻找解决方案,允许我在不修改库的情况下配置第二次超时。
FileName : XMPPStream.m
#define TIMEOUT_XMPP_READ_STREAM -1
我想要-1
到40
。我不想编辑库文件。有没有办法在不修改图书馆的情况下进行设置?
编辑:TimeOut Macro附近的代码
/**
* Seeing a return statements within an inner block
* can sometimes be mistaken for a return point of the enclosing method.
* This makes inline blocks a bit easier to read.
**/
#define return_from_block return
// Define the timeouts (in seconds) for retreiving various parts of the XML stream
#define TIMEOUT_XMPP_WRITE -1
#define TIMEOUT_XMPP_READ_START 10
#define TIMEOUT_XMPP_READ_STREAM 40
// Define the tags we'll use to differentiate what it is we're currently reading or writing
#define TAG_XMPP_READ_START 100
#define TAG_XMPP_READ_STREAM 101
#define TAG_XMPP_WRITE_START 200
#define TAG_XMPP_WRITE_STOP 201
#define TAG_XMPP_WRITE_STREAM 202
#define TAG_XMPP_WRITE_RECEIPT 203
// Define the timeouts (in seconds) for SRV
答案 0 :(得分:1)
如果代码有一个#ifdef
来检查定义是否已经存在,那么您可以使用预处理器来定义所需的值。但是,它没有,所以我想不出一个简单的方法是使用预处理器来替换它并使其保持可编辑状态。
最简单的解决方案就是分叉项目并保持一个小小的变化。这应该是一个低成本的解决方案,因为您的更改将限制为单行,并且合并上游更改应该(通常)是自动的。
答案 1 :(得分:1)
您可以在应用中重新定义预处理器宏。
#undef TIMEOUT_XMPP_WRITE
#define TIMEOUT_XMPP_WRITE 40
这可能会导致您的开发人员更加困惑,我会谨慎使用它。