【问题标题】:How to use publish data over TCP socket instead of UDP如何使用通过 TCP 套接字而不是 UDP 发布数据
【发布时间】:2015-06-21 11:37:30
【问题描述】:

我一直在尝试使用 pubnub 来通过对等方发送数据流。发生的事情是,尽管发送和接收的消息数量相同,但一侧的消息大小与另一侧不同。我想到的是,由于某种原因,部分数据包丢失了

        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

【问题讨论】:

    标签: sockets tcp webrtc pubnub


    【解决方案1】:

    所有 PubNub 客户端库仅通过 TCP 套接字连接进行通信。
    如果您使用的是 PubNub JavaScript、Java 或 Objective-C SDK,那么 SDK 会在您订阅数据通道后自动为您保持 TCP 套接字连接打开。 http-streaming-over-tcp-with-telnet-example 上的本指南将提供一种简单的方法来使用 Telnet 作为通过 TCP 套接字流式传输 JSON 消息有效负载的示例。

    您可以使用 PubNub 的无限 TTL 套接字会话策略通过在套接字上写入初始数据有效负载来保持 TCP 套接字永远处于活动状态。建立 TCP 连接后,发送初始有效负载。在Keeping a TCP Socket Connection Open on your first Network Call 上观看此视频,该视频将引导您完成如何保持 TCP 套接字连接打开的步骤。

    【讨论】:

    • 那么既然它使用的是 TCP,那么离开的数据量和到达的数据量应该是一样的,对吗? (这同样适用于他们到达时的正确转弯?)
    • 是的,没错!您能否通过 support@pubnub.com 给我们发邮件,以便我们进一步调查?
    • 当然,我已经发送了一封关于出现的一些 cors 问题的电子邮件,如果 cors 不对上述问题负责的话,下一封邮件将是这样 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2013-09-16
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    相关资源
    最近更新 更多