aardio 文档
aardio 范例: JSON-RPC( HTTP )
//JSON-RPC( HTTP )
import win.ui;
/*DSG{{*/
var winform = win.form(text="JSON-RPC";right=759;bottom=469)
winform.add(
edit={cls="edit";left=13;top=18;right=734;bottom=444;edge=1;multiline=1;z=1}
)
/*}}*/
//开发环境安装模块
if(_STUDIO_INVOKED){
import process.python.pip;
process.python.pip.require("jsonrpclib")
}
//获取空闲端口
import wsock;
winform.rpcServerPort = wsock.getFreePort();
import process.python;
process.python.exec(`
from jsonrpclib.SimpleJSONRPCServer import SimpleJSONRPCServer
# 指定 logRequests=False 就不用打开控制台,不然没有控制台会直接退出
server = SimpleJSONRPCServer(('localhost', `+winform.rpcServerPort+`),logRequests=False)
server.register_function(pow)
server.register_function(lambda x,y: x+y, 'add')
server.register_function(lambda x: x, 'ping')
server.serve_forever()
`);
//启动 JSON-RPC 客户端线程( aardio )
thread.invoke(
function(winform){
thread.delay(1000);
import web.rpc.jsonClient;
//创建JSON-RPC 2.0客户端
var client = web.rpc.jsonClient("http://127.0.0.1:" + winform.rpcServerPort)
//调用远程对象和函数 aardio.$hello
var rep = client.add(12,3);
winform.edit.print( "返回值:", rep[["result"]] );
winform.edit.print( client.rpc.lastResponse() );
},winform
)
winform.show();
win.loopMessage();
Markdown 格式