如何使用 golang libp2p 流向多个主机发送数据?
How to send data to multiple hosts using golang libp2p streams?
我的问题是指golang中的libp2p库:https://github.com/libp2p/go-libp2p
此视频介绍背景:https://www.youtube.com/watch?v=hP0hSZ7E7_Y
网络中的对等点通过缓冲流进行通信rw
。对于每个新的连接对等点,都会创建一个新流,使用地址将他连接到现有对等点。这意味着有多个流,但并非所有对等点都直接相互连接。使用这些流,对等点可以通过
从中读取和写入数据
rw := bufio.NewReadWriter(bufio.NewReader(stream),bufio.NewWriter(stream))
通过写消息`rw.WriteString("message"),
rw.Flush()``
并通过 message := rw.ReadString(rw)
阅读此消息。
由于对等点不是全部连接的,所以它们只接收来自直接连接的对等点的消息,如果有多个连接甚至不是所有的。
视频中确实提到了这个问题,时间大约在 09:45。该视频的作者说,这可以很容易地修改,不仅可以向直接连接的对等点发送消息,还可以向多个主机发送消息。但如何做到这一点?
我的目标是从一个点发送消息,网络中的所有其他点,包括未直接连接的点,都可以接收(并回答)它。
我的问题是指golang中的libp2p库:https://github.com/libp2p/go-libp2p
此视频介绍背景:https://www.youtube.com/watch?v=hP0hSZ7E7_Y
网络中的对等点通过缓冲流进行通信rw
。对于每个新的连接对等点,都会创建一个新流,使用地址将他连接到现有对等点。这意味着有多个流,但并非所有对等点都直接相互连接。使用这些流,对等点可以通过
rw := bufio.NewReadWriter(bufio.NewReader(stream),bufio.NewWriter(stream))
通过写消息`rw.WriteString("message"),
rw.Flush()``
并通过 message := rw.ReadString(rw)
阅读此消息。
由于对等点不是全部连接的,所以它们只接收来自直接连接的对等点的消息,如果有多个连接甚至不是所有的。
视频中确实提到了这个问题,时间大约在 09:45。该视频的作者说,这可以很容易地修改,不仅可以向直接连接的对等点发送消息,还可以向多个主机发送消息。但如何做到这一点?
我的目标是从一个点发送消息,网络中的所有其他点,包括未直接连接的点,都可以接收(并回答)它。