WebSockets para Node.js y JavaScript/TypeScript con soporte JSON RPC 2.0 además.
La biblioteca rpc-websockets permite a los desarrolladores implementar fácilmente su lógica empresarial que incluye mensajería entre usuarios, máquinas o cualquier dispositivo. Proporciona la posibilidad de enviar y recibir datos JSON a través del protocolo de comunicación WebSocket para admitir notificaciones bidireccionales, ejecutar métodos RPC y activar cualquier tipo de señalización de eventos. Por el momento, sólo los clientes pueden llamar a métodos RPC y no al revés. Se admiten entornos de desarrollo frontend (basados en HTML/JS) y backend (basados en Node.js).
rpc-websockets se basa en Node.js y es compatible con las versiones LTS y Current.
Utilice la edición OSS gratuita para implementar y administrar sus propias instancias de servidor WebSocket, o suscríbase a nuestro plan Pro y haga que administremos sus instancias y le brindemos administración de sus métodos, eventos y notificaciones en una administración web fácil de usar. portal.
Instale nuestra biblioteca OSS en su proyecto:
npm install rpc-websockets
Escribe tu código fuente usando 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 ( )
} )
Consulte nuestra documentación de API para las clases JavaScript y TypeScript del servidor WebSocket y del cliente.
Características de la edición gratuita de código abierto.
Todas las funciones de código abierto de la biblioteca están documentadas en nuestra documentación API y se pueden utilizar de forma gratuita. Usted es libre de implementar sus soluciones basadas en los métodos proporcionados de la manera que le resulte más cómoda, siempre y cuando utilice nuestro trabajo según nuestras condiciones de licencia muy permisivas.
Para respaldar sus entornos listos para producción, podemos brindarle funciones adicionales integradas en nuestra edición OSS gratuita junto con el conjunto de habilidades para convertir su caso de negocio o una idea de prueba de concepto en realidad.
Descríbanos su caso de uso poniéndose en contacto con nosotros y nos comunicaremos con usted rápidamente con una propuesta de solución que satisfaga sus necesidades.
Ofrecemos soporte profesional para rpc-websockets y más. Tenemos muchos años de experiencia en la creación de aplicaciones Node.js sólidas y escalables y podemos ayudarlo a superar los problemas y desafíos que le impiden enviar sus excelentes productos. Nos destacamos en la arquitectura e implementación de software, pudiendo brindarle servicios de desarrollo, planificación, consultoría, capacitación y personalización. ¡No dude en contactarnos para que podamos discutir cómo ayudarlo a terminar sus productos!
Varias empresas utilizan activamente rpc-websockets en producción en una variedad de casos de uso diferentes.
Conviértase en patrocinador y obtenga su logotipo en el archivo README del proyecto en GitHub con un enlace a su sitio. ¡No dudes en contactarnos para el arreglo!
Esta biblioteca tiene licencia LGPLv3. Consulte LICENCIA para obtener detalles sobre la licencia.