Подключить клиент JavaScript к серверу веб-сокетов PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Подключить клиент JavaScript к серверу веб-сокетов Python

Сообщение Anonymous »

У меня есть рабочий веб-сервер Python:

Код: Выделить всё

#!/usr/bin/env python
from socket import *

HOST = ''
PORT = 8080
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)

def loop():
while True:
print 'Waiting for connection...'
tcpCliSock, addr = tcpSerSock.accept()
print '...connected from :', addr
while True:
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
else:
print 'data: ',data
tcpSerSock.close()

try:
loop()
except KeyboardInterrupt:
tcpSerSock.close()
когда я подключаюсь из клиента Python, он работает, даже если при закрытии клиента сервер выходит из строя:

Код: Выделить всё

Waiting for connection...
Traceback (most recent call last):
File "ledServer.py", line 27, in 
loop()
File "ledServer.py", line 16, in loop
tcpCliSock, addr = tcpSerSock.accept()
File "/usr/lib/python2.7/socket.py", line 202, in accept
sock, addr = self._sock.accept()
File "/usr/lib/python2.7/socket.py", line 170, in _dummy
raise error(EBADF, 'Bad file descriptor')
socket.error: [Errno 9] Bad file descriptor
в любом случае, когда я запускаю этот клиент JavaScript:

Код: Выделить всё

window.onload = function(){
ws = new WebSocket('ws://192.168.25.7:8080');
ws.onmessage = function(event){document.write("message received"); alert(event.data); ws.close();}
ws.onopen = function(){document.write("open");}
ws.onclose = function(){document.write("close");}
ws.onerror = function(){document.write("error");}
}
Я получаю это на сервере:

Код: Выделить всё

...connected from : ('192.168.25.25', 53747)
data:  GET / HTTP/1.1
Host: 192.168.25.7:8080
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: file://
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7,tr;q=0.6,nl;q=0.5
Sec-WebSocket-Key: pH4kNOzz1MYyi+oXmaFCcA==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
но даже если сервер говорит, что он подключен, на клиенте функция onopen не выполняется, Chrome говорит, что статус веб-сокета «ожидает», и если я попытаюсь отправляю сообщение на сервер, получаю:

Код: Выделить всё

Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
Что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/485 ... ket-server
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Попытка подключить клиент OrangePi Zero к удаленному удаленному серверу моего компьютера.
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Не удалось подключить клиент kotlinocket.io к серверу node.jssocket.io.
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Не удалось подключить клиент kotlinocket.io к серверу node.jssocket.io.
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Подключение к серверу веб-сокетов с C#
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Аутентификация веб-сокетов — добавление учетных данных в клиент Stomp.js
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»