我想创建一个真正的p2p节点,使用Autobahn在python中与web套接字进行通信。 "真"我的意思是它可以接受传入连接,也可以启动传出连接。理想情况下,它会在同一个类中实现服务器和客户端,因为它们应该以相同的方式运行 - 在p2p世界中,我真的不需要" server"的概念。和"客户",只有节点可能想要自由地相互连接。
我的问题是如何组织这段代码?我是否应该从WebSocketServerProtocol
和WebSocketClientProtocol
继承一个类并实现不同的on...
方法?或者最好有一个单独的类,让它称之为引擎,并在服务器和客户端使用组合与实例?那么,我应该如何启动客户端连接?我是否必须创建此引擎的新实例(理想情况下它应该与服务器的实例相同)。然后,无论连接是作为服务器还是客户端创建,我如何向每个对等方广播消息? (我检查了example,但它仅适用于服务器端。)