Непойманный DOMException: Не удалось выполнить 'send' на 'WebSocket': Все еще в состоянии CONNECTING

Я пытаюсь транслировать видео. Скрипт отлично работает локально, но при переносе на сервер выдает следующую ошибку

Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
    at sendMessage (https://website.com/video:67:24)
    at drawCanvas (https://website.com/video:59:17)
    at HTMLButtonElement.<anonymous> (https://website.com/video:63:17)

Вот скрипт, который я использую

<script type="text/javascript">

        var socket = new WebSocket('ws://localhost:8888/websocket');

        $(document).ready(function () {
            let video = document.getElementById('video');
            let canvas = document.getElementById('canvas');
            let context = canvas.getContext('2d');
            let draw_canvas = document.getElementById('detect-data');
            let draw_context = draw_canvas.getContext('2d');
            let image = new Image();
            if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
                navigator.mediaDevices.getUserMedia({video: true}).then(function (stream) {
                    video.srcObject = stream;
                    video.play();
                });
            }

            function drawCanvas() {
                context.drawImage(video, 0, 0, 600, 450);
                sendMessage(canvas.toDataURL('image/png'));
            }

            document.getElementById("start-stream").addEventListener("click", function () {
                drawCanvas();
            });

            function sendMessage(message) {
                socket.send(message);
            }
            socket.onmessage = function (e) {
                
                image.onload = function () {
                console.log(e)};
            };
        })
    </script>

На сервере я изменил на var socket = new WebSocket('wss://10.0.1.232:8888/websocket');

Вот код для websocket

class WSHandler(tornado.websocket.WebSocketHandler):
    def open(self):
        print ('new connection')
      
    def on_message(self, message):
        from sub_app.py_files.detect import get_face_detect_data
        image_data = get_face_detect_data(message)
        if not image_data:
            image_data = message
        self.write_message(image_data)
 
    def on_close(self):
        print ('connection closed')
 
    def check_origin(self, origin):
        return True
 
application = tornado.web.Application([
    (r'/websocket', WSHandler),
])
 
 
if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    myIP = socket.gethostbyname(socket.gethostname())
    print ('*** Websocket Server Started at %s***' % myIP)
    tornado.ioloop.IOLoop.instance().start()
Вернуться на верх