使用localhost在mac上运行服务器和客户端一切正常。
在raspberry pi上运行python程序(服务器)并尝试使用其url访问它不起作用。
Python服务器:
class Strompreisgenerator:
def __init__(self):
self.ws = websockets.serve(self.echo, 'localhost', 5001)
asyncio.get_event_loop().run_until_complete(self.ws)
asyncio.get_event_loop().run_forever()
async def echo(self, websocket, path):
async for message in websocket:
print(message)
Javascript客户端:
var ws = new WebSocket("ws://www.tobiasschmocker.ch:5001");
尝试实例化WebSocket时出现错误“WebSocket网络错误:操作无法完成。连接被拒绝”在safari中发生。
端口5001在RPi上打开。我也试过本地IP。我在路由器上转发了端口,但仍然没有。如果我试图其他网址我得到另一个错误,所以我想网址是正确的,但我没有任何权利。
在我的RPi上我启用了ssh,还有php,apache,mysql以及我的python服务器的所有pip包。
如果你知道,问题所在,我很高兴知道。非常感谢你!
答案 0 :(得分:1)
现在,websocket正在运行并可通过外部网址获取!
以下是完整性的解决方案。我所要做的就是:
0.0.0.0
代替localhost
作为python中的主机。在RPi终端的sudo netstat -lptu
上,我可以看到所有其他端口(mqtt,ssh等)设置为0.0.0.0
而不是localhost
所以我只是尝试了它的工作原理。< / LI>
设置完所有后,websocket现在正在运行。感谢@YonatanKiron&amp; @Reto!