這裏主要使用的是jayson包,使用jayson實現rpc server端十分簡單,以下:前端
var jayson = require('jayson') // create a server var server = jayson.server({ brest: function (args, callback) { console.log(args) callback(null, args[0] + args[1]) } }) server.http().listen(3000)
這樣就簡單的實現了一個json rpc2.0的服務,使用postman調用測試下:node
這裏的rpc調用的參數在params裏面,分別包含call、args兩個對象,再來看下rpc server這邊打印出的請求參數,能夠看出callback調用後rpc服務便可正常返回數據:c++
使用jayson的一個簡單應用場景就是:golang
對於一些複雜應用,先後端分離後,前端要調用部分rpc服務(多是c++或者golang寫的,當前項目服務端使用的是nodejs),由於跨域問題,前端必須請求到後端(nodejs服務端),讓後端去處理請求這個rpc服務,並把結果返回給前端,至關於後端相對於真正的rpc服務只不過是一個代理轉發,這時候後端能夠再次生成一個rpc服務,並配置cors資源共享,前端全部rpc請求均請求到這裏,而後jayson裏面(比如這個brest方法裏面)拿到前端的請求信息,進行一次rpc請求轉發,最後將請求結果callback返回給前端便可。json