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

  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • Marissah Simonini

    Marissah Sim

    25 HAZİRAN 2013