用于 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 获得许可。请参阅许可证了解许可详细信息。