示例#1
0
文件: rpc.py 项目: lchang1977/sdnac
class Server(object):
    def __init__(self, req_callback):
        # print 'initializing Rpc'
        self.ctx = zmq.Context()
        self.dispatcher = RPCDispatcher()
        self.transport = ZmqServerTransport.create(self.ctx, 'tcp://127.0.0.1:8000')
        
        self.req_callback = req_callback
        
        self.rpc_server = RPCServer(
            self.transport,
            JSONRPCProtocol(),
            self.dispatcher
        )
        self.dispatcher.public(self.request)  # register this function (replacing the decorator)
        
        # print 'READYc: '+str(time.clock())
        # sys.exit(0)
        
        self.rpc_server.serve_forever()
    
    # def start(self):
    #     self.rpc_server.serve_forever()
    
    def request(self, req):
        return self.req_callback(req)
示例#2
0
文件: rpc.py 项目: dongting/sdnac
class Server(object):
    def __init__(self, req_callback):
        print 'initializing Rpc'
        self.ctx = zmq.Context()
        self.dispatcher = RPCDispatcher()
        self.transport = ZmqServerTransport.create(self.ctx, 'tcp://127.0.0.1:8000')
        
        self.req_callback = req_callback
        
        self.rpc_server = RPCServer(
            self.transport,
            JSONRPCProtocol(),
            self.dispatcher
        )
        self.dispatcher.public(self.request)  # register this function (replacing the decorator)
        self.rpc_server.serve_forever()
    
    # def start(self):
    #     self.rpc_server.serve_forever()
    
    def request(self, req):
        return self.req_callback(req)
示例#3
0
from tinyrpc.server import RPCServer
from tinyrpc.dispatch import RPCDispatcher
from tinyrpc.protocols.jsonrpc import JSONRPCProtocol
from tinyrpc.transports.zmq import ZmqServerTransport
from handofcats import as_command

ctx = zmq.Context()
dispatcher = RPCDispatcher()


@dispatcher.public(name="add")
def adder_function(x, y):
    return x + y


dispatcher.public(pow)


@dispatcher.public
def mul(x, y):
    return x * y


@dispatcher.public
def list_methods():
    return list(dispatcher.method_map.keys())


@as_command
def run(*, port: int = 8888, sentinel: str = "") -> None:
    if sentinel: