SORU
27 Mayıs 2012, Pazar


Birleştiren node.js ve Python

Node.js bizim web projesi için mükemmel bir maç olduğunu, ancak Python tercih ederiz birkaç hesaplama görevi vardır. Biz de zaten onlar için bir Python kodu var. Bir Python "" bir asenkron engellenmeyen? node.js çalışan nasıl en zarif yolu ne hız konusunda oldukça endişeliyiz,

CEVAP
27 Mart 2013, ÇARŞAMBA


Bu zeroMQ iyi bir uyum olacak bir senaryo gibi geliyor. TCP veya Unıx soketleri kullanarak benzer mesajlar bir çerçeve var, ama çok daha güçlü (http://zguide.zeromq.org/py:all)

ZeroMQ oldukça iyi çalışan bir RPC çerçeve sağlamak için kullandığı bir kütüphane var. ZeroRPC (http://zerorpc.dotcloud.com/) deniyor. Merhaba Dünya işte.

"Merhaba x" sunucu: . Python

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 müşteri:

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);
});

Ya da tersi, node.js sunucu:

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 istemci

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)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dave Wallace

    Dave Wallace

    27 Kasım 2007
  • mist64

    mist64

    30 Mayıs 2006
  • Tylerron

    Tylerron

    6 AĞUSTOS 2006