简单使用RPC搭建远程访问接口

由于以前自学php,因此知道能够经过http协议,web server访问服务器,以前也是将算法放到服务器的flask上供远程访问接口使用,最近了解到有个RPC的东西,使用Python模块zerorpc搭建RPC更简单快捷。服务端和客户端都要安装zerorpc,将服务端的ip和端口号写入server.py文件中运行(不能中止),客户端client.py中填写服务端的ip和端口号便可运行访问。代码以下:php

Server.pyweb

import zerorpc
class doubleRPC(object):
    def double2(self, num):
        return num*2

serv = zerorpc.Server(doubleRPC())
serv.bind("tcp://0.0.0.0:4243")
serv.run()

Client.py 本机实验室127.0.0.1 远程则换成服务器的ip算法

import zerorpc
c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4243")
print c.double2("RPC")

流式相应(Streaming Responses) 这个代码非原创flask

Server.py服务器

import zerorpc
class StreamingRPC(object):
    @zerorpc.stream
    def streaming_range(self, fr, to, step):
        return xrange(fr, to, step)

s = zerorpc.Server(StreamingRPC())
s.bind("tcp://0.0.0.0:4242")
s.run()

Client.pytcp

import zerorpc
c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")

for item in c.streaming_range(10, 20, 2):
    print item

第一类异常(First-class exception) 这个代码非原创code

Server.pyserver

import zerorpc

class ExceptionalRPC(object):
	def bad(self):
    	raise Exception(":P")

s = zerorpc.Server(ExceptionalRPC())
s.bind("tcp://0.0.0.0:4242")
s.run()

Client.py接口

import zerorpc

c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")

try:
	c.bad()
except Exception, e:
	print "An error occurred: %s" % e
相关文章
相关标签/搜索