Javascript Python WebSocket在Raspbery上不起作用
使用localhost在mac上运行服务器和客户机一切正常 在raspberry pi上运行python程序(服务器)并尝试使用其url访问它是行不通的 Python服务器:Javascript Python WebSocket在Raspbery上不起作用,javascript,python,websocket,raspberry-pi,Javascript,Python,Websocket,Raspberry Pi,使用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_com
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时,safari中出现错误“WebSocket网络错误:操作无法完成。连接被拒绝”
端口5001在RPi上打开。我还尝试了本地IP。我在我的路由器上转发了端口,但仍然一无所获。如果我尝试其他url,我会得到另一个错误,因此我认为url是正确的,但不知何故我没有权限
在我的RPi上,我启用了ssh,还启用了php、apache、mysql和python服务器的所有pip包
如果你知道问题出在哪里,我很乐意知道。多谢各位 现在websocket正在运行,可以通过外部url访问强> 以下是完整性的解决方案。我所要做的就是:
- 更新到Python版本3.6。websockets包似乎只能在Python版本3.6中使用。以下是我用来在RPi上安装Python 3.6的教程:
- 在python中使用
而不是0.0.0.0
作为主机。在RPi终端中的localhost
上,我可以看到所有其他端口(mqtt、ssh等)都设置为sudo netstat-lptu
,而不是0.0.0
,所以我只是尝试了一下,它就工作了localhost
设置完所有这些之后,websocket现在正在运行。感谢@YonatanKiron&@Reto 现在websocket正在运行,可以通过外部url访问强> 以下是完整性的解决方案。我所要做的就是:
- 更新到Python版本3.6。websockets包似乎只能在Python版本3.6中使用。以下是我用来在RPi上安装Python 3.6的教程:
- 在python中使用
而不是0.0.0.0
作为主机。在RPi终端中的localhost
上,我可以看到所有其他端口(mqtt、ssh等)都设置为sudo netstat-lptu
,而不是0.0.0
,所以我只是尝试了一下,它就工作了localhost
设置完所有这些之后,websocket现在正在运行。感谢@YonatanKiron&@Reto 你能展示一下你是如何使用Strompreisgenerator的吗?你能写下当你运行
nc-v www.tobiaschmocker.ch 5001
@YonatanKiron和nc-v www.tobiaschmocker.ch 5001
i get:nc:连接到www.tobiaschmocker.ch端口5001(tcp)时会发生什么吗失败:连接被拒绝
@RetoAebersold我在代码下面创建了strompreisegenerator的实例。我从终端运行py文件:python3路径/strompreisegenerator.py
。程序中还有一个MQTT客户端发布。MQTT代理在www.tobiaschmocker.ch上的端口1883上运行,现在我使用cronjob发布主题“Sarah”。我希望这不会干扰websocket。MQTT工作正常,但websocket不工作。我只有在RPi上运行这个程序时才会出现这个问题——在我的mac上,它可以正常工作。如果您想尝试Websocket或MQTT,我将保持程序运行。@agittarius,当您从RPi运行它时,使用域名称localhost,和127.0.0.1。您能演示一下如何使用Strompreisgenerator吗?您能写下运行nc-v www.tobiaschmocker.ch 5001
@YonatanKiron和nc-v www.tobiaschmocker.ch 5001
时会发生什么吗?我得到:nc:连接到www.tobiaschmocker.ch端口5001(tcp)失败:连接被拒绝
@RetoAebersold我在代码下面创建了strompreisegenerator的实例。我从终端运行py文件:python3路径/strompreisegenerator.py
。程序中还有一个MQTT客户端发布。MQTT代理在www.tobiaschmocker.ch上的端口1883上运行,现在我使用cronjob发布主题“Sarah”。我希望这不会干扰websocket。MQTT工作正常,但websocket不工作。我只有在RPi上运行这个程序时才会出现这个问题——在我的mac上,它可以正常工作。如果您想试用Websocket或MQTT,我会让程序继续运行。@agittarius,当您从RPi运行它时,使用域名、localhost和127.0.0.1。感谢您的消息,有效地使用0.0.0.0解决了我的问题。感谢您的消息,有效地使用0.0.0解决了我的问题。