grpc-lua 示例

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

grpc-lua 示例

(金慶的專欄 2018.4)

grpc-lua (https://github.com/jinq0123/grpc-lua) 是 grpc 的 lua 繫結庫,
應用了 luapbintf , 不需要生成程式碼,直接讀取 proto 檔案。

如:

    -- Sync request.
local request = { name = "world" }
local response = assert(stub:sync_request("SayHello", request))
print("Greeter received: " .. response.message)

完整的示例程式碼見 examples 目錄。

伺服器和客戶端都支援同步和非同步呼叫。

將 examples/conan_install.bat.example 去除 .example 字尾,然後執行,
將安裝所有的依賴庫. 須先安裝 conan 包管理工具 (http://docs.conan.io/en/latest/installation.html)。
還需要設定 git 代理,因為 grpc 的子庫需要翻牆。

conan_install.bat 實際上是下載依賴庫程式碼並編譯。結果在使用者目錄 .conan/data/。
在其中搜尋 lua-cpp.exe, lua-cpp.dll, luapbintf.dll, grpc_lua.dll 並複製到 examples/helloworld/ 目錄下。

然後在 helloworld 目錄下分別執行 run_server.bat 和 run_client.bat 測試。

已編譯測試可行的完整包可下載:
grpc-lua 程式碼及示例Windows執行程式:https://download.csdn.net/download/jq0123/10346554
grpc-lua 示例 CentOS 7.4 執行程式打包:https://download.csdn.net/download/jq0123/10346003

CentOS 7.4 實測:

[[email protected] helloworld]$ ls
greeter_client.lua   grpc_lua.so       lua-cpp         run_server.bat
greeter_server.lua   helloworld.proto  luapbintf.so
greeter_service.lua  liblua-cpp.so     run_client.bat
[[email protected] helloworld]$ ./lua-cpp greeter_server.lua
Server listening on 0.0.0.0:50051
Got hello from world
Got hello from world
[[email protected] helloworld]$ ./lua-cpp greeter_client.lua
Greeter received: Hello world
Async greeter received: Hello world
[[email protected] helloworld]$
[[email protected] route_guide]$ ./lua-cpp route_guide_server.lua
RecordRoute reader end.
RouteChat reader end.
[[email protected] route_guide]$ ./lua-cpp route_guide_client.lua
-------------- Sync get feature --------------
Found feature: {
...

相關文章

程式語言 最新文章