Javascript - Websockets错误ERR_NAME_NOT_RESOLVED

时间:2017-11-03 15:07:06

标签: javascript python websocket apache2 raspberry-pi3

我目前正在使用带有LAMP的覆盆子pi(RPI)在我的本地网络上托管我的网页,该网络使用websocket来传输代表LED状态的一些数据。我的问题是,在尝试建立websocket连接时,我收到以下错误:

  

WebSocket连接到' ws:// raspberrypi:8080 /'失败:错误   连接建立:net :: ERR_NAME_NOT_RESOLVED

我认为我的错误只是因为网址不正确,但我没有找到另一个在我的研究中如何解决此错误的示例。

当我尝试通过LAN在笔记本电脑上建立连接时,会发生此错误。如果我在我的覆盆子pi上访问我的浏览器并尝试建立websocket,则不会发生此错误。那么这是否意味着我的服务器(apache2)可能会阻碍它?

以下是我的客户端Javascript文件:

addEventListener('load',init);

function init() {
    console.log('page ready');
    var ws = new WebSocket('ws://raspberrypi:8080/');

    console.log(ws);
}

这是我的python脚本,它输出我想要流的数据:

from gpiozero import LED
import time 
import sys
if __name__ == "__main__":

    led = LED(3);
    while True:
        led.on()
        print 1
        sys.stdout.flush() #flush: print to screen immediately
        time.sleep(1.5)

        led.off()
        print 0
        sys.stdout.flush() #flush: print to screen immediately
        time.sleep(1.5)

以下是在pi上建立websocket的终端反馈: snapshot

2 个答案:

答案 0 :(得分:1)

原来Apache是​​一个http服务器,不能支持websockets(没有第三方软件)。我现在已经使用Flask-SocketIO成功设置了一个websocket。

答案 1 :(得分:0)

这看起来像一个纯粹的DNS问题。 您可能想要编辑您的hosts文件(在linux下它通常是/ etc / hosts,在windows下它应该是c:\ windows \ system32 \ drivers \ etc)以包含raspberrypi的ip。类似的东西:

raspberrypi 192.168.0.20

其中ip地址是你的覆盆子的ip