2015-06-21 80 views
0

我一直試圖使用pubnub來通過對等方發送數據流。但是,發生的事情是,一方的消息大小與另一方的消息大小不同,儘管發送和接收的消息數量是相同的。我記住的是,通過某種方式,部分數據包丟失了
如何通過TCP套接字使用發佈數據而不是UDP

 pubnub.publish({ 
      channel: 'my_channel',  
      'message' : { 

      'packet': array_of_packets[counter_array_of_packets], 
       'which_packet_is': counter_array_of_packets,    
       'payload_size': calculate_payload_size('my_channel'array_of_packets[counter_array_of_packets])         
      }     
      callback : function(m){console.log(m)} 
     }); 
      pubnub.subscribe({ 
       channel: 'my_channel', 
       message: function(m){wait_(m)}, 
       uuid: 'Mitsos', 
       error: function (error) { 
       // Handle error here 
       console.log(JSON.stringify(error)); 
    } 
}); 

用於計算尺寸的功能是:

function calculate_payload_size(channel, message) { 
    return encodeURIComponent(
     channel + JSON.stringify(message) 
    ).length + 100; 
    } 

那麼,如何可以使用上面兩種功能發佈並在某種程度上訂閱該TCP(傳輸可靠)用於? (如果這可以是任何幫助在這裏實現pubnub的工作示例 - index.html的,其中數據包到達正確的方法的另一邊,但我似乎無法找到,如果他使用TCP的任何地方link

回答

0

所有PubNub客戶端庫僅通過TCP套接字連接進行通信。
如果您正在使用PubNub JavaScript,Java或Objective-C SDK,那麼SDK將負責在訂閱數據通道後自動爲您打開TCP套接字連接。本指南http-streaming-over-tcp-with-telnet-example將提供一種使用Telnet作爲通過TCP套接字流式傳輸JSON消息負載的示例的簡單方法。

Stream JSON Messages with Telnet Example

您可以通過在插座寫初始數據負載永遠與PubNub的無限TTL插槽會話策略保持TCP套接字活躍,充滿活力。建立TCP連接後,發送初始有效負載。在Keeping a TCP Socket Connection Open on your first Network Call上觀看此視頻,其中介紹如何保持打開TCP套接字連接的步驟。

+0

因此,由於它使用的是TCP數據的離開量和到達的數據量應該是相同的,對嗎? (這同樣適用於他們到達的正確轉彎?) –

+0

是的,這就是對的!您可以通過[email protected]給我們發郵件,以便我們進一步調查嗎? – Bhavana

+0

當然,我已經發送了一些關於已經出現的Cors問題的電子郵件,如果Cors不對上述問題負責,那麼下一個問題就是這個問題:) –

相關問題