Используйте некоторое промежуточное программное обеспечение, например ZeroMQ. Это в основном сокеты, сделанные легко (отправляемая атомная единица - это целое сообщение , а не пакет). Он доступен как для node.js , так и для python .
Типичный клиент / сервер REQ / REP имеет длину всего несколько строк.
Например: сервер Python:
import time
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
# Wait for next request from client
message = socket.recv()
print("Received request: %s" % message)
# Do some 'work'
time.sleep(1)
# Send reply back to client
socket.send(b"World")
и клиент node.js:
var zmq = require('zmq');
// socket to talk to server
console.log("Connecting to hello world server…");
var requester = zmq.socket('req');
var x = 0;
requester.on("message", function(reply) {
console.log("Received reply", x, ": [", reply.toString(), ']');
x += 1;
if (x === 10) {
requester.close();
process.exit(0);
}
});
requester.connect("tcp://localhost:5555");
for (var i = 0; i < 10; i++) {
console.log("Sending request", i, '…');
requester.send("Hello");
}
process.on('SIGINT', function() {
requester.close();
});