握手上的python websocket 404

时间:2017-07-27 16:28:55

标签: python websocket

我使用python websocket-client向客户端发送消息。

在客户端,我有:

var s = new WebSocket('http://' + location.host + ':8000/ws');
s.onopen = function(e) { 
    $("#connected3").html('open');
    console.log(e)
}
s.onclose = function(e) { 
    $("#connected").html('close') 
}
s.onmessage = function(e) {
    $("#connected2").html(e.data);
}

在服务器端我有:

import websocket
ws = websocket.WebSocket()
ws = create_connection("ws://127.0.0.1:8000/ws", sslopt=  {"check_hostname": False})

我收到此错误: 握手状态404

我的猜测是,网络套接字服务器存在问题: WS://127.0.0.1:8000 / WS

我在设置网络套接字时是否遗漏了什么?

完整代码: https://github.com/Homa/weatherApp

2 个答案:

答案 0 :(得分:0)

您正在后端创建一个websocket客户端。您必须创建一个websocket服务器并连接到您的JavaScript代码。

ip install git+https://github.com/dpallot/simple-websocket-server.git并连接到它。

from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket

class SimpleEcho(WebSocket):

    def handleMessage(self):
        # echo message back to client
        self.sendMessage(self.data)

    def handleConnected(self):
        print(self.address, 'connected')

    def handleClose(self):
        print(self.address, 'closed')

server = SimpleWebSocketServer('', 8000, SimpleEcho)
server.serveforever()

答案 1 :(得分:0)

如果您使用Flask-Sockets扩展,您可以直接在扩展中使用gunicorn的websocket实现,从而可以从以下命令行开始 gunicorn -k flask_sockets.worker --bind 0.0.0.0:8000 app:app