chrome和firefox对websocket的处理不一样,是chrome的问题还是firefox的问题?

问题描述

图片描述
图片描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

前端代码

    var roomName = {{ room_name_json }};

    if (window.location.protocol == 'https:') {
        var chatSocket = new WebSocket('wss://' + window.location.host + '/ws/chat/' + roomName + '/');
    } else {
        var chatSocket = new WebSocket('ws://' + window.location.host + '/ws/chat/' + roomName + '/');
    }

    chatSocket.onmessage = function (e) {
        var data = JSON.parse(e.data);
        var message = data['message'];
        document.querySelector('#chat-log').value += (message + '\n');
    };

    chatSocket.onclose = function (e) {
        console.error('Chat socket closed unexpectedly');
    };

    $('#chat-message-submit').click(function () {
        $.get(window.location.origin + "/chat/test/" + roomName, function (data) {
            console.log(data);
        });
    });

后端代码

def test(request, room_name):
    import websocket
    import time
    import ssl
    from django.conf import settings
    is_https = getattr(settings, 'IS_HTTPS', False)
    ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE})
    if is_https:
        ws.connect("wss://127.0.0.1/ws/chat/{}/".format(room_name))
    else:
        ws.connect("ws://127.0.0.1/ws/chat/{}/".format(room_name))

    # time.sleep(6)
    ws.send(json.dumps("Hello, World1"))
    time.sleep(6)
    ws.send(json.dumps("Hello, World2"))
    time.sleep(6)
    ws.send(json.dumps("Hello, World3"))
    time.sleep(6)
    ws.close()
    return JsonResponse(666, safe=False)

你期待的结果是什么?实际看到的错误信息又是什么?

firefox的结果是对的.
chrome感觉像是在哪里堵住了并行变串行了.想知道如何处理这个问题?

阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题