流星上OpenTok WebRTC的TB.Socket错误

时间:2013-09-03 02:24:28

标签: meteor webrtc opentok

在这里遇到一个艰难的人。

因此,我们尝试将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()不会发生(因此,我们无法获取连接对象或订阅事件侦听器)。

关于如何调试此问题的任何想法? 在此先感谢您的帮助! 亚比

2 个答案:

答案 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视为两个独立的产品,它们不能互操作。