在这里遇到一个艰难的人。
因此,我们尝试将OpenTok视频聊天应用程序从Flash升级到WebRTC,并且在我们尝试实施'helloworld'WebRTC示例时遇到套接字错误。当我们尝试执行session.connect()调用时,错误发生,而不是在我们请求sessionId或令牌时。并且错误基本上看起来像这样(session_id和partner_id是匿名的):
SessionInfo Response:
#document
<sessions>
<Session>
<session_id>asfgdagbasdfovnwoinvcwoinvoiandfvoinvoidnofgfdfgfgivniodfnv-sdfgdfgdfg-</session_id>
<partner_id>1234567890</partner_id>
<create_dt>Sun Sep 01 12:00:45 PDT 2013</create_dt>
<session_status>INFLIGHT</session_status>
<media_server_url>…</media_server_url>
<p2p_server_url>rtmfp://p2p101-oak.tokbox.com:1945/multicast</p2p_server_url>
<media_server_hostname>oms409-oak.tokbox.com</media_server_hostname>
<messaging_server_url>oms409-oak.tokbox.com</messaging_server_url>
</Session>
</sessions>
connectToMessenger
WebSocket error: undefined
TB.Socket Error :: The socket to oms409-oak.tokbox.com received an error: Unknown Error
TB.exception :: title: Connect Failed (1006) msg: TB.Socket Error :: The socket to oms409-oak.tokbox.com received an error: Unknown Error
关于可能导致此问题的任何想法?我们正在测试最新版本的Chrome 29,它发生在localhost和我们的生产服务器上。所以它似乎不是防火墙。我能想到的一件事是我们在Meteor / Node.js框架上运行,该框架默认启用了websockets。代码几乎是以下的样板helloworld示例:
http://tokbox.com/opentok/tutorials/hello-world/js/demo.html
我们成功获得sessionId和token,只是session.connect()不会发生(因此,我们无法获取连接对象或订阅事件侦听器)。
关于如何调试此问题的任何想法? 在此先感谢您的帮助! 亚比
答案 0 :(得分:2)
以典型的方式,在我花了两天时间来处理一个bug之后,让我感到非常沮丧,我将一个问题发布到StackOverflow,然后在一小时后弄明白。
长话短说,OpenTok帐户有一个未启用的“启用WebRTC”选项。这是一个帐户管理员问题。长话短说...确保开发人员可以访问业务人员拥有的帐户!
答案 1 :(得分:1)
我认为您可能正在使用flash js库而不是webrtc库。如果您使用Flash加入了会话,则无法使用webrtc。
这是webrtc库:
<script src='https://swww.tokbox.com/webrtc/v2.0/js/TB.min.js'></script>
这是flash库:
<script src='https://swww.tokbox.com/v1.1/js/TB.min.js'></script>
将webrtc和flash视为两个独立的产品,它们不能互操作。