账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Python + javascript Websocket 联动问题 “ERR_INVALID_HTTP_RESPONSE”
    86
    0

    新萌入坑python socket编程
    调试时,web端只要一建立websocket连接就直接挂了,错误信息如下:

    WebSocket connection to 'ws://localhost:21567/' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE

    javascript 代码是在服务器运行起来后,随便找了个浏览器的console里面写的。
    是否是因为“前后分离”或者“被服务器过滤造”成此错误,请大家帮忙看看为什么。

    附:服务端代码

    # coding=utf-8
    from socket import *
    
    HOST = ''
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    
    tcp_ser_sock = socket(AF_INET, SOCK_STREAM)
    tcp_ser_sock.bind(ADDR)
    tcp_ser_sock.listen(10)
    
    while True:
        conn, addr = tcp_ser_sock.accept()
        print('connection, from {}'.format(addr))
        while True:
            data = conn.recv(BUFSIZ)
    
            if not data:
                break
    
            conn.send('Feedback Data => {}'.format(data))
    
        conn.close()
    
    tcp_ser_sock.close()

    附:javascript代码

    var ws = new WebSocket("ws://localhost:21567");
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 这辈子_只丶爱你 普通会员 1楼

      "ERR_INVALID_HTTP_RESPONSE" 是一个在 Websocket 中常见的错误,它表示服务器无法响应客户端的请求。

      在Python和JavaScript的 Websocket 联动中,通常使用 socket.io 库来实现。当一个客户端发送一个连接请求时,服务器会检查请求是否符合规范。如果不符合规范,服务器会返回一个错误代码。这个错误代码可以是 "ERRINVALID_HTTP响应"。

      下面是一个简单的例子,展示了如何在 Python 和 JavaScript 中检查一个连接是否有效:

      ```python import socketio

      创建一个 socket 对象

      s = socketio.sockets.socket(socket.AF_INET, socket.SOCK_STREAM)

      设置服务器的地址和端口号

      server_address = ('localhost', 8000) server_port = 8000

      发送一个连接请求

      s.emit('connect', server_address, server_port)

      当服务器接收到连接请求时,检查是否有效

      try: response = s.stream('connect') response.on('data', data => { # 处理数据 }) except socketio.exceptions.ConnectionClosedError as e: print(f"Connection closed: {e}") s.emit('close') ```

      在这个例子中,我们首先创建了一个 socket 对象,并设置了服务器的地址和端口号。然后,我们发送了一个连接请求。当服务器接收到这个请求时,它会检查请求是否有效。如果请求有效,服务器会发送一个数据事件,并在事件处理函数中处理数据。如果请求无效,服务器会返回一个错误代码,并发送一个关闭事件。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部