Bu, zeroMQ'nun uygun olacağı bir senaryoya benziyor. TCP veya Unix soketlerini kullanmaya benzer bir mesajlaşma çerçevesidir, ancak çok daha sağlamdır ( http://zguide.zeromq.org/py:all )
Oldukça iyi çalışan bir RPC çerçevesi sağlamak için zeroMQ kullanan bir kitaplık var. SıfırRPC ( http://www.zerorpc.io/ ) olarak adlandırılır . İşte merhaba dünya.
Python "Merhaba x" sunucusu:
import zerorpc
class HelloRPC(object):
'''pass the method a name, it replies "Hello name!"'''
def hello(self, name):
return "Hello, {0}!".format(name)
def main():
s = zerorpc.Server(HelloRPC())
s.bind("tcp://*:4242")
s.run()
if __name__ == "__main__" : main()
Ve node.js istemcisi:
var zerorpc = require("zerorpc");
var client = new zerorpc.Client();
client.connect("tcp://127.0.0.1:4242");
//calls the method on the python object
client.invoke("hello", "World", function(error, reply, streaming) {
if(error){
console.log("ERROR: ", error);
}
console.log(reply);
});
Veya tam tersi, node.js sunucusu:
var zerorpc = require("zerorpc");
var server = new zerorpc.Server({
hello: function(name, reply) {
reply(null, "Hello, " + name, false);
}
});
server.bind("tcp://0.0.0.0:4242");
Ve python istemcisi
import zerorpc, sys
c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")
name = sys.argv[1] if len(sys.argv) > 1 else "dude"
print c.hello(name)