def main(): handler = CalculatorHandler() processor = Calculator.Processor(handler) pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TTornado.TTornadoServer(processor, pfactory) print("Starting the server...") server.bind(9090) server.start(1) ioloop.IOLoop.instance().start() print("done.")
def _create_server(self, port=0): handler = CalculatorHandler() transport = TServerSocket(port) pfactory = THeaderProtocolFactory(client_types=THEADER_CLIENT_TYPES) return TNonblockingServer( Calculator.Processor(handler), transport, inputProtocolFactory=pfactory, outputProtocolFactory=pfactory, threads=1, )
def thr(): # get the thrift package from HTTP POST body body = request.get_data() content_length = int(request.headers["Content-Length"]) # thrift setup itrans = TTransport.TMemoryBuffer(body) itrans = TTransport.TBufferedTransport(itrans, content_length) otrans = TTransport.TMemoryBuffer() handler = CalculatorHandler() processor = Calculator.Processor(handler) inputProtocolFactory = TBinaryProtocol.TBinaryProtocolFactory() outputProtocolFactory = inputProtocolFactory iprot = inputProtocolFactory.getProtocol(itrans) oprot = outputProtocolFactory.getProtocol(otrans) processor.process(iprot,oprot) response = make_response(otrans.getvalue()) response.headers['Content-Type'] = 'application/x-thrift' return response, 200
self.log[logid] = log return val def getStruct(self, key): print 'getStruct(%d)' % (key) return self.log[key] def zip(self): print 'zip()' # BINARY PROTOCOL handler = CalculatorHandler() processor = Calculator.Processor(handler) transport = TSocket.TServerSocket(port=8000) tfactory = TTransport.TBufferedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) # JSON PROTOCOL - SLOWER # handler = CalculatorHandler() # processor = Calculator.Processor(handler) # transport = TSocket.TServerSocket(port=8000) # tfactory = TTransport.TBufferedTransportFactory() # pfactory = TJSONProtocolFactory() # host = '0.0.0.0' # port = 8000 # server = THttpServer.THttpServer(processor, (host,port), pfactory)
def invoke(self, cmd, token, data): if cmd == 1: return json.dumps({token: data}) else: return 'cmd不匹配' class CcktvRoomHandler: def getBannerList(self, dic, idx): print(dic) return RpcResult(idx, 'akatsuki', 'data-mining') if __name__ == "__main__": calculator_processor = Calculator.Processor(TransmitHandler()) ccktv_room_processor = CcktvRoom.Processor(CcktvRoomHandler()) processor = TMultiplexedProcessor() # 接收多个service processor.registerProcessor('calculator', calculator_processor) processor.registerProcessor('ccktv_room', ccktv_room_processor) transport = TSocket.TServerSocket('127.0.0.1', 8000) tfactory = TTransport.TBufferedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) server.serve() # handler = TransmitHandler() # processor = Calculator.Processor(handler) # transport = TSocket.TServerSocket('127.0.0.1', 8000) # tfactory = TTransport.TBufferedTransportFactory()