标签: peer

zeromq是对等视频聊天的正确解决方案

我想知道我对zeromq的想法是否正确?我正在考虑使用zeromq编写一个点对点聊天应用程序但是当我进一步阅读它时,zeromq似乎比使用的更低级别(tcp套接字).zeromq是否适合编写点对点聊天应用程序,或者此用例不适用?

video tcp chat zeromq peer

5
推荐指数
1
解决办法
2684
查看次数

如何使用多个对等方的对等方连接建立网络?

我想使用WebRTC数据通道在多个对等点之间建立网络。

什么是用于高效通信和视频会议的最佳拓扑?

现在我在做什么?

如果有10个同位体还活着,那么我将在每个同位体上创建10个同位体连接。

这种方法面临着几个问题。

如果连接了对等方,则应向每个现有对等方发送要约,并且应回答每个对等方要约。因此存在问题。

有替代方法吗?

我想做什么?

我想实现一个网状拓扑,即在对等连接上创建可以相互通信的对等连接。

我该怎么办?

javascript jquery html5 peer webrtc

5
推荐指数
0
解决办法
446
查看次数

通知推送ios:通过对等方重置连接

我正在尝试为苹果设备做一个通知系统,但是当我尝试在服务器上运行它时,我遇到以下错误:

警告:stream_socket_client():SSL:第30行/home/empresa/public_html/simplepush/push.php中的同行重置连接

警告:stream_socket_client():无法在第30行的/ home/empresa /public_html/push/push.php中启用加密

警告:stream_socket_client():无法连接到第30行的/ home/empresa /public_html/push/push.php中的ssl://gateway.sandbox.push.apple.com:2195(未知错误)无法连接:0

我的代码是这样的:

  <?php
ini_set('display_errors','On'); 
error_reporting(E_ALL);
$deviceToken= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';      
$passphrase = ' ';
$message = 'my first notification';
////////////////////////////////////////////////////////////////////////////////
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
// Open a connection to the APNS server
$fp = stream_socket_client(
    'ssl://gateway.sandbox.push.apple.com:2195', $err,
    $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
    exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected to APNS' . PHP_EOL;
// Create the payload body
$body['aps'] = array(
    'alert' => $message,
    'sound' => …
Run Code Online (Sandbox Code Playgroud)

apple-push-notifications peer connection-reset

5
推荐指数
1
解决办法
2143
查看次数

Firefox webRTC会话描述中的“ sdparta”代表什么?

当期间的WebRTC的Firefox信号生成报价,答案对象,Mozilla的增加了约一语双关小号分裂国家d ESCRIPTION P通过返回说答案,并提供rotocols“THIS_IS_SDPARTA。”

除了有趣之外,“ SDParta”的“ arta”部分还有什么意义吗?


以下是两个SDP。其中一个是在Chrome中制作的,另一个是在Firefox中制作的,每个都使用相同的Web应用,STUN服务器和信令服务器。

Chrome生成的webRTC答案对象:

"answer": {
    "type": "answer",
    "sdp": "v=0\r\no=-```numbers omitted``` 2 IN IP4 123.4.5.6\r\ns=-\r\nt=0 0\r\na=group:BUNDLE data\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:CYLs\r\na=ice-pwd:```pwd omitted```\r\na=ice-options:trickle\r\na=fingerprint:sha-256 ```sha-256 omitted```\r\na=setup:active\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"
}
Run Code Online (Sandbox Code Playgroud)

Firefox生成的webRTC答案对象:

"answer": {
    "type": "answer",
    "sdp": "v=0\r\no=mozilla...THIS_IS_SDPARTA-61.0.2```numbers omitted``` 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 ```sha-256 omitted``` \r\na=group:BUNDLE sdparta_0\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=sendrecv\r\na=ice-pwd:```pwd omitted```\r\na=ice-ufrag:8e051271\r\na=mid:sdparta_0\r\na=sctpmap:5000 webrtc-datachannel 256\r\na=setup:active\r\na=max-message-size:1073741823\r\n"
}
Run Code Online (Sandbox Code Playgroud)

“ THIS_IS_SDPARTA”指的是电影300和后续的模因,这是斯巴达

根据概述会话描述协议的RFC 4566,原始值由SDP字符串中的'o = value ' 分配:

o=<username> <sess-id> <sess-version> …
Run Code Online (Sandbox Code Playgroud)

firefox p2p mozilla peer webrtc

5
推荐指数
3
解决办法
735
查看次数

python socket编程中建立连接后如何获取客户端的IP地址?

我写了一个套接字程序来发送一个文件并从套接字接收一个字符串在其中我指定了客户端(写了客户端的 ip 地址)我想动态获取该客户端地址,我尝试了 .getpeername() 函数但得到错误

我尝试了 .getpeername() 函数但出现错误

#host = '10.66.227.181'   # fixed ip of one client only
client_socket = socket.socket()
host = client_socket.getpeername()
print(clientip)
port = 8000
print(host,port)
client_socket.connect(host,port)
Run Code Online (Sandbox Code Playgroud)

clientip = socket.gethostname(client_socket.getpeername()) OSError: [WinError 10057] 不允许发送或接收数据的请求,因为套接字未连接并且(使用 sendto 调用在数据报套接字上发送时)未提供地址

python sockets serversocket peer python-3.x

5
推荐指数
1
解决办法
1万
查看次数

是否可以使用 simplepeer JS 列出连接到同一 wifi 网络的所有设备?

我正在创建一个系统,使用户能够在连接到同一 wifi 网络的设备之间共享文件。我想要一个所有已连接设备的列表,以便我可以选择要发送到的设备(使用 simplepeer JS)。

我已经创建了一个可以使用 simplepeer JS 共享文件的小程序

<p>Your id</p>
<div>
  <textarea id="yourId"></textarea>
</div>
<div><button id="connect_bt">Connect</button></div>

<div style="margin-bottom:20px;">
  <p>Other id</p>
  <div>
    <textarea id="otherId"></textarea>
  </div>
  <div></div>
</div>

<div>
  <textarea id="message_input"></textarea>
  <button id="send_message">Send message</button>
</div>

<pre id="messages"></pre>
<script src="simplepeer/simplepeer.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
var peer = new SimplePeer({
    initiator: location.hash === '#init',
    trickle: false
});

peer.on('signal', function(data) {
    document.getElementById('yourId').value = JSON.stringify(data);
});

document.getElementById('connect_bt')
        .addEventListener('click', function() {
            var other_id = JSON.parse(document.getElementById('otherId').value);
            peer.signal(other_id);
        });

document.getElementById('send_message')
        .addEventListener('click', function() {
            var message = document.getElementById('message_input').value;
            peer.send(message);
        });

peer.on('data', function(data) { …
Run Code Online (Sandbox Code Playgroud)

html javascript peer webrtc simple-peer

5
推荐指数
0
解决办法
987
查看次数

如何使用peerjs连接到主机?

我正在尝试使用peerjs将主机与客户端连接。我有两个文件(一个用于主机,一个用于客户端)。主机将生成客户端用于连接到他的 peerId。它基本上是来自here的教程。

主机.html

const peer = new Peer()

peer.on('open', () => {
  console.log('ID: ' + peer.id)
})

peer.on('connection', (conn) => {
  conn.on('data', (data) => {
    // Will print 'hi!'
    console.log(data)
  })
  conn.on('open', () => {
    conn.send('hello!')
  })
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

客户端.html

const peer = new Peer()

const conn = peer.connect('1781a113-d095-4be5-9969-b80d9c364f6b')
conn.on('open', () => {
  conn.send('hi!')
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

客户端未连接也未发送消息。我尝试使用他们的示例连接到我的主机,这是有效的。我能够向主机发送消息。我的客户有什么问题?

javascript p2p peer webrtc peerjs

5
推荐指数
1
解决办法
101
查看次数

我如何说服同行认为算法很重要?

我的同行正在撰写一份报告,显示我们小型咨询公司每位员工的每周(周日至周六)预付款.他编写了一段代码,显示了与目标周中的日期相对应的列.他的算法如下:

  1. 获取该月第一天的哪一天.如果是星期天,将标志设置为零; 否则,将其设置为1.
  2. 整个月的所有日子都在迭代.如果是星期天,请递增旗帜.然后,如果标志的值等于要显示的周,则显示与当天相对应的列; 否则,隐藏列.

当然,该标志表示当前周是什么.

我建议另一种算法:

  1. 获取该月的哪几天是指定周的第一天(F)和最后一天(L).例如,2009年10月的第一周从星期二的1日开始,到星期六的3日结束.
  2. 遍历对应于第1天到第F-1天的列,并隐藏它们.
  3. 遍历对应于天F到L的列,并显示它们.
  4. 遍历对应于天L + 1到DaysOfMonth的列,并隐藏它们.

我的算法中的"困难"部分是第1部分.我的意思是"难以",因为"难以理解",因为这样做的算法复杂性是不变的.我的算法具有更紧密的循环优势.我的同行循环对每月的每一天进行比较.我没有.

这是一个小例子,你可能会说这里的过度优化有点过于偏执.但是当我们编写实际的性能关键代码时,他的编程风格并没有改变.

他的代码也充满了这些测试:

/* doSomething() doesn't change the state of the relevant variables. */
if (condition)
{
    flag++;
    if (flag > test)
        doSomething();
}
else
    if (flag >= test)
        doSomething();
Run Code Online (Sandbox Code Playgroud)

当然,当它可以这样做:

if (flag >= test);
    doSomething();
if (condition)
    flag++;
Run Code Online (Sandbox Code Playgroud)

我该怎么办?!?!?!

编辑:我更正了代码示例中的比较.

algorithm peer

3
推荐指数
2
解决办法
528
查看次数

是否可以打开Java语言中的端口以在网络上进行通信?

我看到Socket.IO和Websockets通常需要NodeJS或类似的东西,但是不能在客户端上运行。

有没有可能打开使用JavaScript接受通信的端口的方法?因此,设备可以在网络上互相对话,peer2peer(充当服务器)吗?

javascript p2p peer server

3
推荐指数
1
解决办法
1638
查看次数

Hyperledger结构:两个组织中的一个同行可能性

在Hyperledger结构中,一个同行可以成为两个组织的一部分吗?请添加尽可能多的推理以支持您的答案.

peer hyperledger-fabric

3
推荐指数
1
解决办法
70
查看次数