开源软件名称(OpenSource Name):gityf/ngx_lua_thrift开源软件地址(OpenSource Url):https://github.com/gityf/ngx_lua_thrift开源编程语言(OpenSource Language):Lua 77.7%开源软件介绍(OpenSource Introduction):ngx_lua_thrift Apache2.0 License
protocol Support protocol: binary,compact and JSON.
binary: TBinaryProtocol.lua
compact: TCompactProtocol.lua
JSON:TJsonProtocol.lua
Support transport: RawSocket,Buffered,Framed and Http. socket socket: ngx.socket.tcp() Steps of installing
demo of lua thrift clientrequire "rpc_RpcService"
require "TFramedTransport"
require "TBinaryProtocol"
require "TJsonProtocol"
require "TCompactProtocol"
require "TSocket"
_M = {}
function _M.demoFunc()
local socket = TSocket:new{
host='127.0.0.1',
port=8090
}
-- to select protocol of thrift.
--local protocol = TBinaryProtocol:new{
-- local protocol = TCompactProtocol:new{
--trans = socket
--}
local protocol = TJSONProtocolFactory:getProtocol(socket)
--local protocol = TCompactProtocolFactory:getProtocol(socket)
client = RpcServiceClient:new{
protocol = protocol
}
-- to test different type of struct.
local argStruct = ArgStruct:new{
argByte = 53,
argString = "str 测试字符串\"\t\n\r\'\b\fvalue",
argI16 = 54,
argI32 = 12.3,
argI64 = 43.32,
argDouble = 11.22,
argBool = true
}
-- Open the socket using ngx_socket
socket:open()
pmap = {}
pmap.name = "namess"
pmap.pass = "vpass"
-- map[int]string
pistrmap = {}
pistrmap[10] = "val10"
pistrmap[20] = "val20"
-- str set define is map[string]bool
paramSets = {}
paramSets["ele1"] = true
paramSets["ele2"] = true
paramSets["ele3"] = true
-- int set define is map[int]bool
intSets = {}
intSets[11] = true
intSets[22] = true
intSets[33] = true
-- to do a thrift rpc call and store response into variable ret.
ret = client:funCall(argStruct, 53, 54, 12, 34, 11.22, "login", pmap,
pistrmap,
paramSets,
intSets,
{"l1.","l2."}, false);
res = ""
for k,v in pairs(ret)
do
print(k, v)
res = res .. k .."." .. v .. "<br>"
end
return res
end
return _M nginx conf
Testing
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论