Node.js Chat Apps are practically the "Hello World" of real-time apps. If you Google for "node.js chat example" you will see thousands of results! But ... 90% of the examples use Express.js, 95% use MongoDB to store data/messages and 100% have zero tests. So, this example is for the the people who prefer to have examples that are fully explained (including tests). As with all our examples we have a suite of tests.
https://github.com/dwyl/hapi-socketio-redis-chat-example#readmeTags | hapi hapi.js node chat real-time socket.io redis pubsub publish subscribe scalable |
Implementation | Elm |
License | GPL GPLv2 |
Platform | NodeJS |
Happiness is learning how to use the Hapi.js (Node.js) web framework to build reliable/scalable apps faster. Hapi is the framework for rapidly building RESTful & Real-Time web applications and services with Node.js. Whether you are building a very simple API for your website/mobile app or a large scale, cache heavy, secure e-commerce website, hapi has you covered. Hapi will help get your server developed quickly with its wide range of configurable options.
learn hapi how-to introduction tutorialEmitter is a free open source real-time messaging service that connects all devices. This publish-subscribe messaging API is built for speed and security. Emitter is a real-time communication service for connecting online devices. Infrastructure and APIs for IoT, gaming, apps and real-time web. At its core, emitter.io is a distributed, scalable and fault-tolerant publish-subscribe messaging platform based on MQTT protocol and featuring message storage.
pubsub networking emitter mqtt mqtt-broker realtime high-performance low-latencyA Real Time Messaging Server. Beaver is a real-time messaging server. With beaver you can easily build scalable in-app notifications, realtime graphs, multiplayer games, chat applications, geotracking and more in web applications and mobile apps.
pusher beaver websocket pubsub socket-io realtime messaging messaging-service socketjsSimple encrypted web chat. Powered by socket.io, the web cryptography API. This project is an example of how client side encryption works and how you can integrate it as a chat service. Darkwire server is a Node.js application that requires redis. The Darkwire.io web client is written in JavaScript with React JS and Redux. It uses a combination of asymmetric encryption (RSA-OAEP), symmetric session keys (AES-CBC) and signing keys (HMAC) for security.
chat chat-room cryptography privacy encryption chatroom socket-io anonymous-users chat-application end-to-end-encryption im instant-messaging secure-chatThoonk is a persistent (and fast!) framework for Redis backed live data and objects, such as push feeds, queues, and jobs. Thoonk lets you create a Model whose methods are mapped to Redis Lua scripts, and can listen for and emit events using Redis pubsub channels.
redis job feed queue publish subscribe push live clusterThis node.js module (Hapi plugin) lets you use JSON Web Tokens (JWTs) for authentication in your Hapi.js web application.
hapi.js authentication auth json-web-tokens jwtA full re-implementation of the Meteor's MongoDB oplog tailing. This time, reactivity is controlled by the app, opening a new world into building reactive applications, highly scalable chat apps, games, and added reactivity for non-persistent data. Incrementally adoptable & works with your current Meteor project.
redis reactivity meteorThis project is now updated to use Node 4.x (not backward compatible). In addition, it uses all latest modules of Express, Socket.io etc. One of the most common things people build on Node.js are real-time apps like chat apps, social networking apps etc. There are plenty of examples showing how to build such apps on the web, but it’s hard to find an example that shows how to deal with real-time apps that are scaled and are running with multiple instances. You will need to deal with issues like sticky sessions, scale-up/down, instance crash/restart, and more for apps that will scale. This post will show you how to manage these scaling requirements.
Primus, the creator god of transformers but now also known as universal wrapper for real-time frameworks. There are a lot of real-time frameworks available for Node.js and they all have different opinions on how real-time should be done. Primus provides a common low level interface to communicate in real-time using various real-time frameworks.If you deploy your application behind a reverse proxy (Nginx, HAProxy, etc.) you might need to add WebSocket specific settings to its configuration files. If you intend to use WebSockets, please ensure that these settings have been added. There are some example configuration files available in the observing/balancerbattle repository.
real-time websocket framework sockjs browserchannel polling http nodejs node abstraction engine.io comet streaming pubsub pub sub ajax xhr faye io primus prumus realtime socket socket.io sockets spark transformer transformers websockets ws uwsRedisson - Distributed and Scalable Java data structures (Set, SortedSet, Map, ConcurrentMap, List, Queue, Deque, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog) on top of Redis server. Advanced redis java client. It supports over 28+ data structures and services, Synchronous / asynchronous / reactive interfaces and lot more.
distributed collections locks distributed-locks cacheQuestion: Why should an API be humanized? Answer: Machines consume APIs, but people still write the software that run on those machines. HAPI addresses this problem by reducing all operations to simple requests that can be initiated and read by any standard web browser. API calls are reduced from a series of instructions into a single, self-documenting URL that can be clicked from an Email, chat, blog post (or anything else) with results that are simple enough to be read back over the phone in plain english.
api humanized human readableScribe is a server for aggregating log data that's streamed in real time from clients. It is designed to be scalable and reliable. It is developed and maintained by Facebook. It is designed to scale to a very large number of nodes and be robust to network and node failures. There is a scribe server running on every node in the system, configured to aggregate messages and send them to a central scribe server (or servers) in larger groups.
log-analysis log-aggregation messaging-system publish-subscribe facebookRedis client for Golang. It supports Publish /Subscribe. Transactions. Pipeline and TxPipeline. Scripting. Timeouts. Redis Sentinel. Redis Cluster. Cluster of Redis Servers without using cluster mode and Redis Sentinel. Ring. Instrumentation. Cache friendly. Rate limiting. Distributed Locks.
redis redis-client redis-cluster redis-driver redis-libraryRedisson - distributed Java objects and services (Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Executor service, Tomcat Session Manager, Scheduler service, JCache API) on top of Redis server. Rich Redis client.
cache distributed-caching distributed-locks redis-client redis-cluster collections java-collections hashmap set queueA PHP implementation of socket.io-emitter. This project requires a Redis client for PHP. If you dont have the PECL Redis installed, the emitter will default to using TinyRedisClient. You can, however, pass in any Redis client that supports a publish method.
Have a look at the Hoodie project's contribution guidelines. If you want to hang out you can join our Hoodie Community Chat.
hapi pluginejabberd is a distributed, fault-tolerant technology that allows the creation of large-scale instant messaging applications. The server can reliably support thousands of simultaneous users on a single node and has been designed to provide exceptional standards of fault tolerance. As an open source technology, based on industry-standards, ejabberd can be used to build bespoke solutions very cost effectively.
xmpp jabber messaging-server im chat chat-server distributed real-timeCreate a base boilerplate example showing how easy it is to get started with Hapi as a web server. CSS Framework - None. Choose your own CSS preprocessor and CSS framework.
Redigo is a Go client for the Redis database. The Go distribution is Redigo's only dependency. It is a Print-like API with support for all Redis commands. It supports Pipelining, Publish / Subscribe, Connection pooling.
redis redis-client
We have large collection of open source products. Follow the tags from
Tag Cloud >>
Open source products are scattered around the web. Please provide information
about the open source projects you own / you use.
Add Projects.