Network programming 如何在构建聊天应用程序时处理防火墙限制?

Network programming 如何在构建聊天应用程序时处理防火墙限制?,network-programming,xmpp,chat,Network Programming,Xmpp,Chat,我正在使用基于jabber的服务器构建一个简单的聊天应用程序。客户端预期通过端口5222进行连接。但是,当我测试我的应用程序时,我发现在一些网络中,访问仅限于端口80或8080 我遇到了几个解决方案: a) 使用波什-但发现它在移动设备上运行缓慢且不稳定 b) 我只是想知道如果我让我的jabber服务器在端口80上侦听会怎么样?(不确定这会有什么影响!) 我想知道你们对上述解决方案的看法,并知道如何使我的应用程序像其他聊天应用程序一样,像gtalk、fb chat等一样,可以普遍访问 编辑: 另

我正在使用基于jabber的服务器构建一个简单的聊天应用程序。客户端预期通过端口5222进行连接。但是,当我测试我的应用程序时,我发现在一些网络中,访问仅限于端口80或8080

我遇到了几个解决方案:

a) 使用波什-但发现它在移动设备上运行缓慢且不稳定

b) 我只是想知道如果我让我的jabber服务器在端口80上侦听会怎么样?(不确定这会有什么影响!)

我想知道你们对上述解决方案的看法,并知道如何使我的应用程序像其他聊天应用程序一样,像gtalk、fb chat等一样,可以普遍访问

编辑: 另外,是否还有我可能遗漏的任何其他防火墙限制?

使用HTTPS上的BOSH(端口443/tcp)。很好地实现BOSH有点棘手,但它肯定可以做到。使用不同的方法


否则,请使用端口443/tcp,并使用我们用于加密的旧式TLS握手优先机制,而不是启动TLS。如果端口80/tcp看起来不像HTTP,则某些网络中间框会干扰您的流量。同样,如果前几个网络数据包看起来不像SSL或TLS握手,某些中间框将不允许您在443/tcp上连接。

使用端口80,只是不要尝试在同一台机器上为该端口设置任何其他设置