Мне нужно задержать, когда рукопожатие начинается при использовании API-интерфейса WebSocket в браузере.Javascript WebSocket - требуется дополнительная задержка
Сервер представляет собой плату Nucleo (L476RG) с экраном wifi IDW01M1. Клиент Firefox v50.1
1. Тестирование сервера
Я сделал скрипты Python, чтобы установить соединение WebSocket. Я заметил, что мне нужно сначала «Подключиться» к серверу. Затем инициируйте обмен после задержки 600 мс Я не могу запустить свой сервер быстрее, чем это. Помните, что это хобби уровня MCU
2. Тестирование клиент
Я сделал локальный сервер с помощью Python. Мой клиент Javascript подключается к нему без проблем.
#!c:/Python27/python.exe -u
import socket
import time
TCP_IP = '172.24.220.1'
TCP_PORT = 3000
BUFFER_SIZE = 1024
#
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect first
connected = False
while not connected:
try:
s.connect((TCP_IP, TCP_PORT))
connected = True
except Exception as e:
pass
#------------------------------------
time.sleep(0.6)
#------------------------------------
# Send first bytes
s.send("Good-hi")
# Ping pong
data = s.recv(BUFFER_SIZE)
же проблема возникает с Python также при использовании библиотеки WebSocket
#!c:/Python27/python.exe -u
import time
import websocket
from websocket import create_connection
remote = "ws://172.24.220.1:3000"
websocket.enableTrace(True)
ws = websocket.WebSocket()
ws.connect(remote) #<------Need to add delay inside this method
print "WebSocket established"
ws.close()
Это page объясняет, что происходит внутри метода WebSocket. С Python я могу открыть сокет без какого-либо рукопожатия (RAW Socket), а затем начать рукопожатие, отправив вручную заголовки. Однако это невозможно сделать в браузере, потому что я не могу открыть RAW-сокеты. По крайней мере, это мое понимание до сих пор.
Резюме, есть способ сначала установить соединение между клиентом и сервером, а затем начать квитирование по желанию?
Вы можете разместить код вами Python Client пожалуйста. : D –
@PhilPoore сделано. Я должен упомянуть об этом: я не использовал библиотеку «websocket» на py, потому что у нее такая же проблема, рукопожатие происходит слишком быстро. – daarthvader
hmmm .... im confused, у вас есть 600 мс задержки в коде выше. - код, который требует замедления? –