peerjs p2p 通话时手机端发起呼叫失败如何解决?

peerjs 官网 demo 可以用其测试

情况描述:

  1. 唯一稳定的通话操作:PC(开vpn) 呼叫 手机;同样的设备,手机 呼叫 PC(开vpn)就提示找不到对应id的对等方。
  2. 手机 呼叫 手机 就几乎无法成功;不同的浏览器、wifi 或 移动数据、是否开vpn都有影响。
  3. 手机 呼叫 手机 成功的时候也只有一方有画面,但声音是正常的。

问题:

  1. 找不到对等方是因为什么,如何解决?
  2. 怎么摆脱vpn的依赖?
  3. peerjs 自己部署服务器可以解决问题吗?我用的是默认官方云,出现的异常和官方demo情况一致。
阅读 602
1 个回答

自己建一个PeerJS服务器:

# 安装PeerJS服务器
npm install -g peer

# 运行服务器(指定端口和key)
peerjs --port 9000 --key peerjs

客户端配置:

const peer = new Peer('your-chosen-id', {
  host: '你的服务器IP或域名',
  port: 9000,
  path: '/',
  key: 'peerjs',
  debug: 3, // 开启详细日志便于调试
  config: { // 关键配置!
    'iceServers': [
      { urls: 'stun:stun.l.google.com:19302' },
      { urls: 'stun:global.stun.twilio.com:3478' },
      {
        urls: 'turn:你的TURN服务器地址',
        username: '用户名',
        credential: '密码'
      }
    ],
    'iceTransportPolicy': 'all'
  }
});

在配置ICE服务器

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题