txJSONRPC thật tuyệt. Tôi sử dụng nó và nó hoạt động. Tôi đề nghị bạn thử.
SERVER:
from txjsonrpc.web import jsonrpc
from twisted.web import server
from twisted.internet import reactor
class Math(jsonrpc.JSONRPC):
"""
An example object to be published.
"""
def jsonrpc_add(self, a, b):
"""
Return sum of arguments.
"""
return a + b
reactor.listenTCP(7080, server.Site(Math()))
reactor.run()
KHÁCH HÀNG:
from twisted.internet import reactor
from txjsonrpc.web.jsonrpc import Proxy
def printValue(value):
print "Result: %s" % str(value)
def printError(error):
print 'error', error
def shutDown(data):
print "Shutting down reactor..."
reactor.stop()
proxy = Proxy('http://127.0.0.1:7080/')
d = proxy.callRemote('add', 3, 5)
d.addCallback(printValue).addErrback(printError).addBoth(shutDown)
reactor.run()
Như một phần thưởng, tôi sẽ để lại một số lựa chọn: amp. http://amp-protocol.net
Làm việc tốt ngoại trừ hai thay đổi nhỏ. Tôi cần phải thay đổi lớp Math (jsonrpc.jsonRPC): để lớp Math (jsonrpc.JSONRPC): trong máy chủ và các cổng không phù hợp trong client và server mã, họ đã đồng ý về một và nó hoạt động fine – 1337Rooster
Nó có thể là tốt hơn để sử dụng 'd.addCallback (printValue); d.addErrback (printError) 'thay vì' d.addCallbacks (printValue, printError) 'để bắt lỗi từ' printValue() '. – jfs
@ 1337Rooster, @ J.F. Sebastian: Tôi đã sửa các vấn đề mà các bạn đã đề cập đến cho các độc giả trong tương lai. Cảm ơn các ý kiến. – nosklo