Я новичок в HTML5 / javascript. Я создал сервер веб-сокетов с использованием python.
Я хочу просмотреть данные и добавить полученные сообщения в текстовую область, не уверен, что происходит не так, но это работаетштраф при первой попытке отправить сообщение, но при отправке другого выдает «WebSocket is already in CLOSING or CLOSED state
».
Я что-то упустил из html?
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
var connection = new WebSocket("ws://localhost:8765");
connection.onopen = function () {
console.log('Connection Opened');
};
connection.onerror = function (error) {
console.log('WebSocket Error ' + error);
};
connection.onmessage = function (e) {
document.getElementById("rxConsole").value += e.data;
};
function sendMessage(msg){
console.log('I\'m sending data');
connection.send(document.getElementById("txBar").value);
document.getElementById("txBar").value = "";
}
</script>
</head>
<body">
<div>
<textarea id="rxConsole"></textarea
</div>
<hr/>
<div>
<input type ="text" id="txBar" onkeydown="if(event.keyCode == 13) sendMessage();" />
</body>
</html>
Код Python:
import asyncio
import websockets
async def hello(websocket, path):
name = await websocket.recv()
print(f"< {name}")
greeting = f"Hello {name}!"
await websocket.send(greeting)
print(f"> {greeting}")
start_server = websockets.serve(hello, 'localhost', 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Из хрома: