"Предыстория":
Задача: сделать онлайн чат.
Сделанные шаги:
1) Сделан сервер
2) Сделан клиент
Проблема:
Клиент принимает и отправляет сообщения через консоль, что неправильно, а также накладывает некоторые ограничения в возможностях
Теперь к делу:
Я нашел в интернете код для создания веб чата:
Сервер:
import asyncio
import websockets
USERS = set()
async def addUser(websocket):
USERS.add(websocket)
async def removeUser(websocket):
USERS.remove(websocket)
async def socket(websocket, path):
await addUser(websocket)
try:
while True:
message = await websocket.recv()
await asyncio.wait([user.send(message) if user != websocket else user.send('') for user in USERS])
finally:
await removeUser(websocket)
start_server = websockets.serve(socket, '127.0.0.1', 5678)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Клиент - html страница:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>
Работа с сокетами на python
</title>
</head>
<body>
<div class="message"></div>
<textarea placeholder="Для отправки нажмите Enter"></textarea>
<script>
var socket = new WebSocket("ws://localhost:5678");
socket.onopen = function(){
document.querySelector("textarea").addEventListener('keyup', function(e){
if(e.keyCode === 13){
if(this.value.trim() === ""){
return false;
}
socket.send(this.value.trim());
this.value = "";
}
});
};
socket.onerror = function(){
console.log('Ошибка при подключении');
};
var p = "";
socket.onmessage = function(e){
p = document.createElement("p");
p.innerHTML = e.data;
document.querySelector(".message").appendChild(p);
};
</script>
Я конечно немного разбираюсь в javascript, но я не буду делать код питона на javascript: javascript для этого не предназначен.
Вопрос:
1) Как мне использовать питон код в javascript коде сайта
2) Как я могу вносить изменения на работающую html страницу, аналогично работе javascript кода, написанного выше