我一直在尝试使用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 )
答案 0 :(得分:0)
所有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套接字连接打开的步骤。