All Projects → elpheria → Rpc Websockets

elpheria / Rpc Websockets

Licence: other
JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript/TypeScript

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Rpc Websockets

rony
Fast and Scalable RPC Framework
Stars: ✭ 41 (-88.08%)
Mutual labels:  websocket-server, rpc, rpc-client, rpc-framework
Hprose Delphi
Hprose is a cross-language RPC. This project is Hprose 2.0 for Delphi and FreePascal
Stars: ✭ 100 (-70.93%)
Mutual labels:  rpc, rpc-framework, rpc-client
Gotree
Gotree is a vertically distributed framework. Gotree's goal is to easily develop distributed services and liberate the mental burden of developers.
Stars: ✭ 91 (-73.55%)
Mutual labels:  rpc, rpc-framework, distributed-systems
Hprose Php
Hprose is a cross-language RPC. This project is Hprose 3.0 for PHP
Stars: ✭ 1,952 (+467.44%)
Mutual labels:  rpc, rpc-framework, rpc-client
Grant
OAuth Proxy
Stars: ✭ 3,509 (+920.06%)
Mutual labels:  aws, serverless, gcp
Rpcx Java
rpcx implementation in Java for server side and client side
Stars: ✭ 71 (-79.36%)
Mutual labels:  rpc, rpc-framework, rpc-client
Hprose Js
Hprose is a cross-language RPC. This project is Hprose 2.0 RPC for JavaScript
Stars: ✭ 133 (-61.34%)
Mutual labels:  rpc, rpc-framework, rpc-client
Komiser
☁️ Cloud Environment Inspector 👮🔒 💰
Stars: ✭ 2,684 (+680.23%)
Mutual labels:  aws, serverless, gcp
nodejs grpc
GRPC based API CRUD using Nodejs at both server and client side
Stars: ✭ 17 (-95.06%)
Mutual labels:  rpc, rpc-client, rpc-framework
hprose-as3
Hprose for ActionScript 3.0
Stars: ✭ 18 (-94.77%)
Mutual labels:  rpc, rpc-client, rpc-framework
Hprose Golang
Hprose is a cross-language RPC. This project is Hprose for Golang.
Stars: ✭ 1,143 (+232.27%)
Mutual labels:  rpc, rpc-framework, rpc-client
Hprose Nodejs
Hprose is a cross-language RPC. This project is Hprose 2.0 for Node.js
Stars: ✭ 297 (-13.66%)
Mutual labels:  rpc, rpc-framework, rpc-client
Remit
RabbitMQ-backed microservices supporting RPC, pubsub, automatic service discovery and scaling with no code changes.
Stars: ✭ 24 (-93.02%)
Mutual labels:  rpc, events, messaging
Rsf
已作为 Hasor 的子项目,迁移到:http://git.oschina.net/zycgit/hasor
Stars: ✭ 77 (-77.62%)
Mutual labels:  rpc, rpc-framework, distributed-systems
Hprose Java
Hprose is a cross-language RPC. This project is Hprose 2.0 for Java
Stars: ✭ 542 (+57.56%)
Mutual labels:  rpc, rpc-framework, rpc-client
Jupiter
Jupiter是一款性能非常不错的, 轻量级的分布式服务框架
Stars: ✭ 1,372 (+298.84%)
Mutual labels:  rpc, rpc-framework, distributed-systems
Foundatio
Pluggable foundation blocks for building distributed apps.
Stars: ✭ 1,365 (+296.8%)
Mutual labels:  aws, messaging, distributed-systems
Aws Serverless Event Fork Pipelines
AWS Event Fork Pipelines helps you build event-driven serverless applications by providing pipelines for common event-handling requirements, such as event backup, analytics, and replay. The pipelines are based on AWS SAM, and can be deployed directly from AWS SAR into your AWS account.
Stars: ✭ 126 (-63.37%)
Mutual labels:  aws, serverless, messaging
hrpc
Common interface definition based rpc implementation
Stars: ✭ 21 (-93.9%)
Mutual labels:  rpc, rpc-client, rpc-framework
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+886.05%)
Mutual labels:  rpc, rpc-framework, rpc-client

WebSockets for Node.js and JavaScript/TypeScript with JSON RPC 2.0 support on top.




About

The rpc-websockets library enables developers to easily implement their business logic that includes messaging between users, machines or any devices. It provides a possibility to send and receive JSON data through the WebSocket communication protocol in order to support two-way notification push, running RPC methods and firing any types of event signalling. Only clients can call RPC methods and not vice versa at the moment. Both frontend (HTML/JS-based) and backend (Node.js-based) development environments are supported.

rpc-websockets is built on Node.js and supports both LTS and Current versions.

Use the free OSS edition in order to implement and manage your own WebSocket server instances, or subscribe for our Pro plan and have us manage your instances and provide you with management of your methods, events and notifications on an easy-to-use Web Management portal.

Quick start

Install our OSS library in your project:

npm install rpc-websockets

Write your source code using 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()
})

Documentation

Please consult our API documentation for both WebSocket server and client JavaScript and TypeScript classes.

OSS Features

Features of the free open-source edition.

OSS Features

All library's open-source features are documented in our API documentation and can be used free of charge. You are free to implement your solutions based on provided methods in any way you are comfortable with, as long as you use our work along our very permissive license conditions.

Pro Features

In order to support your production-ready environments, we can provide you with additional features built on top of our free OSS edition along with the skill set to turn your business case or a Proof-of-Concept idea into reality.

Pro Features

Describe us your use case by contacting us and we will swiftly get back to you with a proposed solution that meets your needs.

Professional support

We offer professional support for rpc-websockets and beyond. We have many years of expertise on building robust, scalable Node.js applications and can help you overcome issues and challenges preventing you to ship your great products. We excel in software architecture and implementation, being able to provide you with development, planning, consulting, training and customization services. Feel free to contact us so we can discuss how to help you finish your products!

Users

rpc-websockets is being actively used in production by multiple companies in a variety of different use cases.


ScratchboxLoom NetworkuniqCastLeapDAOKlika Tech, Inc.Kodebox, Inc.Hey-Group S.A./N.V.Hylo, Inc.Witnet FoundationScale LeapCodice Foundation, Inc.Holo Ltd.Solana Labs, Inc.Filecoin

Sponsors

Become a sponsor and get your logo on project's README on GitHub with a link to your site. Feel free to contact us for the arrangement!

License

This library is licensed under LGPLv3. Please see LICENSE for licensing details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].