You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter集成Vonage(Tokbox)生成session和token后未生成stream ID如何解决

问题根因

  1. Stream ID 不是服务端创建Session时生成的:Vonage (Tokbox) 的流ID是客户端(Web/移动端)拿到Session ID和Token、成功加入会话并发布音视频流之后,才会由Vonage服务生成的资源标识。你当前仅在服务端完成了Session创建和Token生成,没有任何客户端接入发布流,自然不存在Stream ID,调用getStream()肯定无法获取结果。
  2. 代码存在语法问题:你调用$opentok->getStream($sessionId, $streamId)时,$streamId变量完全没有提前定义赋值,属于未定义变量,就算当前会话有存在的流,传空值也无法查询到对应流信息。
  3. 无效代码冗余:你连续调用了3次createSession()方法,前两次创建的Session实例会被最后一次的结果直接覆盖,属于无用代码,建议根据你的业务需求只保留对应配置的Session创建逻辑即可。

正确实现步骤

  • 服务端仅需要生成业务需要的Session ID和对应权限的Token,返回给客户端使用
  • 客户端集成对应端的Vonage SDK,传入Session ID和Token加入会话,调用发布流接口上传本地音视频
  • 流发布成功后,客户端可以从发布成功的回调事件中拿到当前流的Stream ID,若服务端需要使用该ID,可由客户端上报到服务端
  • 你也可以在确认已有客户端发布流之后,服务端调用$opentok->listStreams($sessionId)方法获取当前会话下所有存在的流列表,遍历即可得到每个流的Stream ID

内容的提问来源于stack exchange,提问作者Sandip Raut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:45:02