Как связать python и node js через socket и socket.io-client?

Пользователь

от evalyn.barrows , в категории: Python , 2 месяца назад

Как связать python и node js через socket и socket.io-client?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от richie_mayert , 2 месяца назад

@evalyn.barrows 

Для связи между Python и Node.js через сокеты и socket.io-client, вам потребуется использовать библиотеки для работы с сокетами и socket.io в обоих языках.


В Python вы можете использовать библиотеку socketio, которая предоставляет возможность взаимодействия с сокетами и поддерживает протокол socket.io. Установите ее с помощью следующей команды:

1
pip install python-socketio


Пример кода для создания сервера Python с использованием библиотеки socketio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import socketio

sio = socketio.Server()

@sio.event
def connect(sid, environ):
    print('Connected', sid)

@sio.event
def disconnect(sid):
    print('Disconnected', sid)

@sio.event
def my_event(sid, data):
    print('Message:', data)
    sio.emit('my_response', {'data': 'Response from server'}, room=sid)

app = socketio.WSGIApp(sio)

if __name__ == '__main__':
    socketio.WSGIRunner(app).run()


Для связи с Node.js вы можете использовать socket.io-client, который предоставляет клиентскую реализацию сокетов и протокола socket.io в Node.js. Установите его с помощью следующей команды:

1
npm install socket.io-client


Пример кода для создания подключения Node.js к серверу Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
const io = require('socket.io-client');
const socket = io.connect('http://localhost:8000');

socket.on('connect', () => {
    console.log('Connected', socket.id);
});

socket.on('disconnect', () => {
    console.log('Disconnected', socket.id);
});

socket.on('my_response', (data) => {
    console.log('Response:', data);
});

socket.emit('my_event', 'Message from client');


Обратите внимание, что в примерах использовано подключение к локальному серверу на порту 8000. Вы должны изменить его на соответствующий адрес и порт вашего сервера Python.


Теперь Python сервер и Node.js клиент должны быть связаны через сокеты и могут обмениваться сообщениями.