iphone - 在 ec2 ubuntu 实例上安装的 ejabberd 服务器上启用 mod_proxy65

标签 iphone ios proxy xmpp xmppframework

我正在开发一个 iOS 聊天应用程序,因此要使媒体传输正常工作,我需要启用 mod_proxy65,并且我在 ejabberd.cfg 文件中启用了相同的默认设置:{mod_proxy65[]} .在客户端,我正在使用 https://github.com/robbiehanson/XMPPFramework适用于 iOS 的 xmpp 框架。 在 TURNSocket.m 中,我使用代理候选作为 dev.myserver.com代替默认 jabber.org .现在我尝试打开TURN连接时,收到和发送的一系列iq如下:

发送:<iq type="get" to="dev.myserver.com" id="A9876DD0-B13C-4DC7-B812-2A6E653288BC"><query xmlns="http://jabber.org/protocol/disco#items"/></iq>

接收:<iq xmlns="jabber:client" from="dev.gungroo.com" to="smita@dev.myserver.com/24983171131368877324197828" id="A9876DD0-B13C-4DC7-B812-2A6E653288BC" type="result"><query xmlns="http://jabber.org/protocol/disco#items"><item jid="conference.dev.myserver.com"/><item jid="irc.dev.myserver.com"/><item jid="proxy.dev.myserver.com"/><item jid="pubsub.dev.myserver.com"/><item jid="vjud.dev.myserver.com"/></query></iq>

发送:<iq type="get" to="proxy.dev.myserver.com" id="26D694FB-C679-478C-A3D1-A84B9A583534"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>

接收:<iq xmlns="jabber:client" from="proxy.dev.myserver.com" to="smita@dev.myserver.com/24983171131368877324197828" id="26D694FB-C679-478C-A3D1-A84B9A583534" type="result"><query xmlns="http://jabber.org/protocol/disco#info"><identity category="proxy" type="bytestreams" name="SOCKS5 Bytestreams"/><feature var="http://jabber.org/protocol/disco#info"/><feature var="vcard-temp"/><feature var="http://jabber.org/protocol/bytestreams"/><x xmlns="jabber:x:data" type="result"><field var="FORM_TYPE" type="hidden"><value>http://jabber.org/network/serverinfo</value></field></x></query></iq>

发送:<iq type="get" to="proxy.dev.myserver.com" id="C60068A2-985C-4C5C-87B3-C9FFFB41FDF0"><query xmlns="http://jabber.org/protocol/bytestreams"/></iq>

接收:<iq xmlns="jabber:client" from="proxy.dev.gungroo.com" to="smita@dev.myserver.com/24983171131368877324197828" id="C60068A2-985C-4C5C-87B3-C9FFFB41FDF0" type="result"><query xmlns="http://jabber.org/protocol/bytestreams"><streamhost jid="proxy.dev.myserver.com" host="10.212.103.159" port="7777"/></query></iq>

问题来了,它返回服务器dev.myserver.com的内部IP地址(10.212.103.159),导致TURN连接失败。为什么它不返回 proxy.dev.myserver.com 的外部 IP 地址? 在同一页面上:proxy.dev.myserver.com 和 dev.myserver.com 都指向相同的外部 ip。并且端口 7777 在我的服务器 dev.myserver.com 上打开。有谁用过同样的东西,请帮忙?? 这是显示错误消息的最后一个 iq(发送和接收):

发送

<iq type="set" to="smita1@dev.myserver.com/38303823331368691199448799" id="2D376DBF-D437-48C8-B0FF-B10A5CD73240">
    <query xmlns="http://jabber.org/protocol/bytestreams" sid="2D376DBF-D437-48C8-B0FF-B10A5CD73240" mode="tcp">
        <streamhost xmlns="http://jabber.org/protocol/bytestreams" jid="proxy.dev.myserver.com" host="10.212.103.159" port="7777"/>
    </query>
</iq>

回复

<iq xmlns="jabber:client" from="smita1@dev.myserver.com/38303823331368691199448799" to="smita@dev.myserver.com/278621573136869119737843" type="error" id="2D376DBF-D437-48C8-B0FF-B10A5CD73240">
    <query xmlns="http://jabber.org/protocol/bytestreams" sid="2D376DBF-D437-48C8-B0FF-B10A5CD73240" mode="tcp">
       <streamhost xmlns="http://jabber.org/protocol/bytestreams" jid="proxy.dev.myserver.com" host="10.212.103.159" port="7777"/>
    </query>
    <error type="cancel" code="501">
        <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
    </error>
</iq>

如果有人能指出我的问题,那就太好了。谢谢!

最佳答案

这帮助我解决了这个问题。 xx.xx.xx.xx 是我的外部 ip: {mod_proxy65, [{主机名, ["xx.xx.xx.xx"]}]},

关于iphone - 在 ec2 ubuntu 实例上安装的 ejabberd 服务器上启用 mod_proxy65,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16624275/

相关文章:

ios - 未触发委托(delegate)方法 - iOS

ios - Objective-C : Auto Layout with existing Custom View changing bounds width and height to 0, 0

java - Apache HttpClient 4.3.5 设置代理

java - HTTP代理在浏览器中正常工作,但不允许连接到Java中除443之外的任何端口

iphone - UIImage iPhone 旋转 37.8 度

ios - CMSampleBufferRef 始终具有相同的视频分辨率?

ios - Xamarin iOS 8,UICollectionView - 出列可重用 UICollectionViewCell 时出错

Go简单API网关代理

iphone - 在 iOS 5 中获取访问 token 后获取 Facebook 用户个人资料数据

iphone - iPhone/Android 浏览器是否支持 CSS @media 手持设备?