Django WebSocket无法通过铁路应用程序中阻止的https请求连接

km0tfn4u  于 2023-01-14  发布在  Go
关注(0)|答案(1)|浏览(176)

我的websocket在localhost上运行良好。但是当我在railway app上部署我的项目时,它无法运行
(使用https)
它在控制台日志中显示此错误:
第一个错误-""(索引):382混合内容:"https://supreme-key-production.up.railway.app/rooms/bangladesh_ott/"处的页面已通过HTTPS加载,但尝试连接到不安全的WebSocket终结点" ws://supreme-key-production.up.railway.app/ws/bangladesh_ott/"。此请求已被阻止;此终结点必须通过WSS可用。第二个错误-""(index):382未捕获DOMException:无法构造"WebSocket":无法从通过HTTPS加载的页启动不安全的WebSocket连接。请在window. onload(https://supreme-key-production.up.railway.app/rooms/bangladesh_ott/:382:24)"""
这是我的剧本:窗口. onload =函数(){const房间名称= JSON. parse(文档. getElementById('json-room名称'). textContent);const用户名= JSON. parse(文档. getElementById('json用户名').文本内容);const聊天套接字=新的网络套接字('ws://'+ www.example.com +'/ws/'+房间名称+'/');window.location.host + '/ws/' + roomName + '/' ); chatSocket.onmessage = function(e) { console.log('onmessage')

const data = JSON.parse(e.data);

        if (data.message) {
            let html = '<div class="message">';
                html += '<p class="messsage_username">' + data.username + '</p>';
                html += '<p class="message_message">' + data.message + '</p></div>';

            document.querySelector('#chat-messages').innerHTML += html;
        } else {
            alert('The message was empty!');
        }
    }

    chatSocket.onclose = function(e) {
        console.log('onclose')
    }

    //

    document.querySelector('#chat-message-submit').onclick = function(e) {
        e.preventDefault();

        const messageInputDom = document.querySelector('#chat-message-input');
        const message = messageInputDom.value;

        chatSocket.send(JSON.stringify({
            'message': message,
            'username': userName,
            'room': roomName
        }));

        messageInputDom.value = '';

        return false;
    }
    }

'''
有什么解决办法吗?

zzzyeukh

zzzyeukh1#

我不太了解Web套接字,但我认为您可以尝试将ws://替换为wss://

相关问题