使用 wss 验证 kurento 媒体服务器

Verify kurento media server using wss

如何验证kurento媒体服务器是否使用wss? 正如提到的 this 文档,我取消了对

的注释

"secure": { "port": 8433, "certificate": "defaultCertificate.pem", "password": "" },

并提供了证书和密码 pem 文件,但是当我通过 KMS_URI = "wss://localhost:8433/kurento" 我也无法获得 icecandidates。但是通过使用 KMS_URI = "ws://localhost:8888/kurento" 我可以从 KMS 获得 icecandidates 但无法达到 "CONNECTED" 的 ICECANDIDATES STATE。 (使用 nodeJS 作为信令服务器)

  1. 有没有命令或方法可以检查KMS是否使用wss协议?
  2. 如果我正在使用所有这些东西,为什么我无法以 "CONNECTED" 的身份到达 Icecandidatestate?

编辑 1

  1. 我按照 kurento 文档 (one-to-many nodeJS example) 构建我的应用程序。我在 Amazon ec2 机器上托管了我的应用程序。两台服务器都在同一台机器上,即 nodeJS 服务器和 KMS。
  2. google STUN 服务器地址在我的应用程序中配置。
  3. 使用 KMS 6.0 版和 kurento-client-js 6.6.0 版
  4. Libnice 也更新为 0.1.13 版本

我的应用程序 运行 很好,但突然我不知道为什么它是因为 chrome 更新或什么应用程序无法达到连接状态,即使它是 return icecandidates客户端但无法达到 icecandidates 连接状态。最后,由于 chrome 更新版本 52,我遇到了同样的问题,但通过在 KMS 上使用 SSL 证书,它开始正常工作。

通过使用命令

sudo netstat -putan | grep kurento

KMS 正在侦听 8443 和 8888 端口

但问题是,当我在我的节点 server.js 文件中使用 KMS_URI = "ws://localhost:8888/kurento" 来创建管道时,它是 returning icecandidates 给客户和管道被创建。但是当我传递 KMS_URI = "wss://localhost:8443/kurento" 时,它正在 returning 一条日志消息重新连接到服务器。那么,KMS 没有使用证书文件或其他任何东西到底是什么问题。

关于证书,所以证书应该没有问题,因为我为 nodeJS 应用程序使用了相同的证书,并且两个服务器都在同一台机器上,所以我也为 KMS 使用了相同的证书。对于 nodeJS 应用程序证书工作正常。

您可以使用以下命令检查应用正在侦听哪些端口

sudo netstat -putan | grep kurento

至于为什么不完成谈判,可能与此无关。有很多很重要的事情你什么都没说

  • 你是什么类型的应用运行?设置是什么?
  • 您 运行 您的 KMS 是否位于 NAT 之后?剧透警报:这是 99% 的情况
  • 您是否在 KMS 中配置了 STUN and/or TURN?
  • 您使用不同的客户端吗?
  • 您使用的是什么版本的 KMS?

更新 1

您正在尝试将 node.js 服务器应用程序连接到错误的端口 8443。根据您的配置,您的 KMS 正在侦听 8433(注意最后两位数字是 3)。除此之外,如果您打算将您的服务器应用程序和您的 KMS 放在同一个服务器中,就像您现在正在做的那样,那么使用 WSS 就没有意义了。

我的问题最终通过使用“74.125.200.127:19302”stun 服务器地址代替“173.194.66.127:19302”得到解决。我已经使用 this webrtc trickle-ice link.

验证了两个 stun 服务器地址