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

  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • DONFANTASTICKYPESS

    DONFANTASTIC

    1 Temmuz 2007