Код сервера веб-сокетов:
Код: Выделить всё
# echo_server.py
import asyncio
import websockets
import logging
logging.basicConfig(level=logging.DEBUG)
async def echo(websocket):
async for message in websocket:
logging.debug(f"Received message: {message}")
await websocket.send(message)
async def main():
async with websockets.serve(echo, "0.0.0.0", 6789):
await asyncio.Future() # Run forever
if __name__ == "__main__":
logging.debug("Starting WebSocket server")
asyncio.run(main())
Код: Выделить всё
import asyncio
import websockets
async def send_messages():
uri = "ws://3.140.79.204:6789" # Replace with your WebSocket server URI
async with websockets.connect(uri) as websocket:
messages = ["Hello from Python!", "How are you?", "This is a test message.", "Goodbye!"]
for message in messages:
await websocket.send(message)
print(f"Sent message: {message}")
await asyncio.sleep(1) # Wait for 1 second between messages
if __name__ == "__main__":
asyncio.run(send_messages())
Код: Выделить всё
import React, { useState, useCallback, useEffect } from 'react';
import useWebSocket, { ReadyState } from 'react-use-websocket';
const WebsocketTesting = () => {
//Public API that will echo messages sent to it back to the client
const [socketUrl, setSocketUrl] = useState('ws://3.140.79.204:6789');
const [messageHistory, setMessageHistory] = useState([]);
const { sendMessage, lastMessage, readyState } = useWebSocket(socketUrl);
useEffect(() => {
if (lastMessage !== null) {
setMessageHistory((prev) => prev.concat(lastMessage));
}
}, [lastMessage]);
const handleClickChangeSocketUrl = useCallback(
() => setSocketUrl('wss://demos.kaazing.com/echo'),
[]
);
const handleClickSendMessage = useCallback(() => sendMessage('Hello'), []);
const connectionStatus = {
[ReadyState.CONNECTING]: 'Connecting',
[ReadyState.OPEN]: 'Open',
[ReadyState.CLOSING]: 'Closing',
[ReadyState.CLOSED]: 'Closed',
[ReadyState.UNINSTANTIATED]: 'Uninstantiated',
}[readyState];
return (
Click Me to change Socket Url
Click Me to send 'Hello'
The WebSocket is currently {connectionStatus}
{lastMessage ? Last message: {lastMessage.data} : null}
[list]
{messageHistory.map((message, idx) => (
{message ? message.data : null}
))}
[/list]
);
};
export default WebsocketTesting;
введите здесь описание изображения
И сервер Python будет получать эхо-сигналы от отправляемых им сообщений
Код: Выделить всё
python3 send_messages_test.py Код: Выделить всё
Sent message: Hello from Python!Код: Выделить всё
Sent message: How are you?Код: Выделить всё
Sent message: This is a test message.Код: Выделить всё
Sent message: Goodbye!Подробнее здесь: https://stackoverflow.com/questions/793 ... sends-them
Мобильная версия