我正在使用 PaulFreunds XMPP 库编写 Windows 8 聊天程序 - PaulFreund/XMPP
我有两个问题:首先 - 我需要手动绑定我的资源。我不知道在代码中放置边界资源标签的位置。它需要在客户端连接时发送,但我无法到达那个地方。连接客户端后,发送标签会导致我出错。标签:
public void bindResource()
{
var iq = new XMPP.tags.jabber.client.iq();
iq.type = XMPP.tags.jabber.client.iq.typeEnum.set;
var bind = new XMPP.tags.xmpp_bind.bind();
var resource = new XMPP.tags.xmpp_bind.resource();
resource.Add("myresource");
bind.Add(resource);
iq.Add(bind);
Client.Send(iq);
}
第二个也很棘手。我想通过我的请求获取我的朋友列表:
public void getFriends()
{
var iq = new XMPP.tags.jabber.iq.roster.query();
var tag = new XMPP.tags.jabber.client.iq();
tag.type = XMPP.tags.jabber.client.iq.typeEnum.get;
tag.Add(iq);
Client.Send(tag);
}
它工作正常。但是在这里我也想在我从服务器获得有关状态的存在后处理它。(我们称它为服务器,因为我们都知道我们列表中的每个朋友都知道它)这是因为我在我的联系人列表中设置在线值。我可以像现在这样按顺序执行:第一个状态第二个朋友列表,但我需要制作一些我不想制作的缓存文件。我试图把它放在OnConnected
事件中,但来自朋友的存在也早早地出现在我面前。