用於 Node.js 和 JavaScript/TypeScript 的 WebSockets,頂部支援 JSON RPC 2.0。
rpc-websockets庫使開發人員能夠輕鬆實現其業務邏輯,包括使用者、機器或任何裝置之間的訊息傳遞。它提供了透過 WebSocket 通訊協定發送和接收 JSON 資料的可能性,以支援雙向通知推送、運行 RPC 方法和觸發任何類型的事件訊號。目前只有客戶端可以呼叫 RPC 方法,反之亦然。支援前端(基於 HTML/JS)和後端(基於 Node.js)開發環境。
rpc-websockets基於 Node.js 構建,支援 LTS 和 Current 版本。
使用免費的 OSS 版本來實施和管理您自己的 WebSocket 伺服器實例,或訂閱我們的 Pro 計劃,讓我們管理您的實例,並在易於使用的 Web 管理上為您提供方法、事件和通知的管理入口網站。
在您的專案中安裝我們的 OSS 庫:
npm install rpc-websockets
使用rpc-websockets
編寫原始碼:
var WebSocket = require ( 'rpc-websockets' ) . Client
var WebSocketServer = require ( 'rpc-websockets' ) . Server
// instantiate Server and start listening for requests
var server = new WebSocketServer ( {
port : 8080 ,
host : 'localhost'
} )
// register an RPC method
server . register ( 'sum' , function ( params ) {
return params [ 0 ] + params [ 1 ]
} )
// ...and maybe a protected one also
server . register ( 'account' , function ( ) {
return [ 'confi1' , 'confi2' ]
} ) . protected ( )
// create an event
server . event ( 'feedUpdated' )
// get events
console . log ( server . eventList ( ) )
// emit an event to subscribers
server . emit ( 'feedUpdated' )
// close the server
server . close ( )
// instantiate Client and connect to an RPC server
var ws = new WebSocket ( 'ws://localhost:8080' )
ws . on ( 'open' , function ( ) {
// call an RPC method with parameters
ws . call ( 'sum' , [ 5 , 3 ] ) . then ( function ( result ) {
require ( 'assert' ) . equal ( result , 8 )
} )
// send a notification to an RPC server
ws . notify ( 'openedNewsModule' )
// subscribe to receive an event
ws . subscribe ( 'feedUpdated' )
ws . on ( 'feedUpdated' , function ( ) {
updateLogic ( )
} )
// unsubscribe from an event
ws . unsubscribe ( 'feedUpdated' )
// login your client to be able to use protected methods
ws . login ( { 'username' : 'confi1' , 'password' : 'foobar' } ) . then ( function ( ) {
ws . call ( 'account' ) . then ( function ( result ) {
require ( 'assert' ) . equal ( result , [ 'confi1' , 'confi2' ] )
} )
} ) . catch ( function ( error ) {
console . log ( 'auth failed' )
} )
// close a websocket connection
ws . close ( )
} )
請參閱我們的 API 文檔,以了解 WebSocket 伺服器和客戶端 JavaScript 和 TypeScript 類別。
免費開源版本的功能。
所有庫的開源功能都記錄在我們的 API 文件中,並且可以免費使用。只要您按照我們非常寬鬆的許可條件使用我們的工作,您就可以根據所提供的方法以您喜歡的任何方式自由實施您的解決方案。
為了支援您的生產就緒環境,我們可以為您提供建立在我們的免費 OSS 版本之上的附加功能以及將您的業務案例或概念驗證想法變為現實的技能。
請聯絡我們向我們描述您的使用案例,我們將迅速回覆您並提供滿足您需求的建議解決方案。
我們為rpc-websockets及其他領域提供專業支援。我們在建立強大、可擴展的 Node.js 應用程式方面擁有多年的專業知識,可以幫助您克服阻礙您交付出色產品的問題和挑戰。我們擅長軟體架構和實施,能夠為您提供開發、規劃、諮詢、培訓和客製化服務。請隨時聯絡我們,以便我們討論如何幫助您完成您的產品!
rpc-websockets被多家公司積極用於生產中的各種不同用例。
成為贊助商並在 GitHub 上的專案自述文件中獲取您的徽標以及指向您網站的連結。請隨時聯絡我們安排!
該庫根據 LGPLv3 獲得許可。請參閱許可證以了解許可證詳細資訊。