我正在开发一个聊天应用程序。
但是现在只有谷歌可以聊天,因为我只知道google的端口号。
xmppClient = [[XMPPClient alloc] init];
[xmppClient addDelegate:self];
// Replace me with the proper domain and port.
// The example below is setup for a typical google talk account.
[xmppClient setDomain:@"talk.google.com"];
[xmppClient setPort:5222];
您可以看到,谷歌已将5222设置为端口号。
我想为雅虎设置端口号,windows messenger&其他热门网站,我怎样才能得到所有这些?
(是这样的 - “XMPP特定于Google的”?)
答案 0 :(得分:4)
Kraken's Openfire Properties Page包含您需要的端口和域信息。只需重复使用并尝试使用您的应用程序。
答案 1 :(得分:2)
5222 / tcp是XMPP的默认端口,但您的实现可能有不同的端口。要查找,请对_xmpp-client._tcp.YOURDOMAIN
进行DNS SRV查询,将YOURDOMAIN
替换为您尝试连接的域。这将返回0+记录,这些记录具有用于连接的主机名/端口组合。如果你得到0条记录,则假设是5222端口。
例如,我想连接到GoogleTalk服务器,并使用帐户foo@gmail.com
登录。我的客户端执行可以在命令行上使用dig模拟的查找,如下所示:
% dig +short -t SRV _xmpp-client._tcp.gmail.com.
20 0 5222 talk1.l.google.com.
20 0 5222 talk4.l.google.com.
5 0 5222 talk.l.google.com.
20 0 5222 talk3.l.google.com.
20 0 5222 talk2.l.google.com.
优先级最低的数字为5 0 5222 talk.l.google.com.
,这意味着您在端口5222上打开了与talk.l.google.com
的TCP连接。
要从代码中进行SRV查询,请查看this answer,它依赖于DNSServiceQueryRecord。
答案 2 :(得分:0)
5222是XMPP的默认端口,但是 你的实施可能有一个 不同的。为了找到答案,你做了一个 DNS服务器查询 _xmpp-client._tcp.DOMAIN_Name,将DOMAIN_Name替换为 您尝试连接的域名(例如 gmail.com,google.com,yahoo.com)。这个 将返回0+记录 hostName / port组合如何 连接。如果你得到0条记录, 假设端口5222。