我有一个覆盆子pi,它被设置为音频流服务器。我使用websockets和python作为编程语言。客户端可以通过连接到raspberry pi上托管的服务器来收听实时音频流。该系统在localhost环境中运行良好。现在,我想从互联网访问服务器,通过搜索我了解STUN。我试图使用pystun,但我无法获得适当的NAT冲孔端口。那么有人可以帮助我实施STUN吗? 注意:服务器正在localhost:8000
进行侦听答案 0 :(得分:0)
直接搜索STUN Python导致了这个:
https://pypi.python.org/pypi/pystun
转到该页面的底部,您将找到源代码的链接。解压缩它,核心STUN代码在__init__.py
文件中。
返回音频服务器。如果它是真正的客户端/服务器协议并且仅使用单个端口进行所有通信,那么您本身并不需要STUN。您只需在NAT上打开一个端口,以便来自外部世界的任何客户端都可以连接。如果协议更复杂(端口以对等方式动态协商),那么在直接连接到Internet的信令协议服务之上,您将需要类似STUN的东西。
答案 1 :(得分:0)
NAT打孔用于点对点(P2P)通信,您的音频流服务器似乎是客户端-服务器实现。
这将如何工作以及是否会大量工作取决于您的NAT设备(实施哪种NAT)。 NAT设备的超时时间很可能很高,并且您需要为每个客户端连接(从树莓派)打孔。
正如您所说的,您使用的是WebSocket,而这些套接字始终是TCP,因此pystun无法正常工作,因为pystun仅支持UDP。
我建议在您的NAT设备中创建端口转发,使用P2P VPN传输流量或在其他网络上托管音频流服务器。