用PubnubreplaceSocket io(WebRTC)

我正在研究使用Pubnub的服务来build立video对等体之间的WebRTC连接。 有了这个,我希望避免使用套接字io这是我目前使用的,虽然我只是找不到任何示范,演示如何做到这一点。

套接字io正在处理从客户端和服务器发出的事件。 据我所知,当前节点的js服务器将不再需要处理任何发射的事件,因为socket io不会被使用,但这是我遇到的问题。 我不知道如何设置客户端互相发送他们需要的信息(谁连接到等)

有没有简单的例子或实现的pubnub被用来代替socket io的一个项目,或者有人可以揭示一些我可能没有看到的东西,谢谢!

编辑:也与任何在Pubnub经验的人,是我正在尝试甚至可能哈哈

WebRTC信令通过PubNub交换ICE候选者

目标是在两个对等体之间交换ICE候选分组。 ICE candidate packets are structured payloads which contain possible path recommendations between two peers. 你可以使用一个lib来处理如http://www.sinch.com/这样的问题 ,下面是你想要的一般方向:

信令示例代码遵循

 <script src="http://cdn.pubnub.com/pubnub-3.6.3.min.js"></script> <script>(function(){ // INIT P2P Packet Exchanger var pubnub = PUBNUB({ publish_key : 'demo', subscribe_key : 'demo' }) // You need to specify the exchange channel for the peers to // exchange ICE Candidates. var exchange_channel = "p2p-exchange"; // LISTEN FOR ICE CANDIDATES pubnub.subscribe({ channel : exchange_channel, message : receive_ice_candidates }) // ICE CANDIDATES RECEIVER PROCESSOR FUNCTION function receive_ice_candidates(ice_candidate) { // Attempt peer connection or upgrade route if better route... console.log(ice_candidate); // ... RTC Peer Connection upgrade/attempt ... } // SEND ICE CANDIDATE function send_ice_candidate(ice) { pubnub.publish({ channel : exchange_channel, message : ice }) } 

生成ICE候选人示例代码遵循:

  // CREATE ICE CANDIDATES var pc = new RTCPeerConnection(); navigator.getUserMedia( {video: true}, function(stream) { pc.onaddstream({stream:stream}); pc.addStream(stream); pc.createOffer( function(offer) { pc.setLocalDescription( new RTCSessionDescription(offer), send_ice_candidate, // - SEND ICE CANDIDATE via PUBNUB error ); }, error ); } ); // ERROR CALLBACK function error(e) { console.log(e); } })();</script> 

更多有趣的细节等待 – https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection