Непойманный 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()