Public | Automated Build

Last pushed: a year ago
Short Description
Websocket chatroom based on MySQL and Node
Full Description

sails-mysql-live-select-chat-example

A Sails chat room application that uses the sails-mysql-live-select NPM package wrapper in order to provide live (real time) result sets for models.

This example uses AngularJS as a front-end framework. The original inspiration for this example was provided by Maanga Labs' Sockets in Sails example application. Also, a tutorial is available for the original Maanga Labs socket example.

Installation

The following instructions assume that you already have Node.js installed.

# Clone the repository
git clone git://github.com/numtel/sails-mysql-live-select-chat-example.git
# Switch to new directory
cd sails-mysql-live-select-chat-example
# Install dependencies
npm install
# Update MySQL connection settings in editor
vim config/connections.js
# Lift Sails (or simply 'sails lift' if installed)
node app.js

Explanation

  1. The sails-mysql-live-select adapter is configured in config/connections.js in addition to the sails-mysql adapter. View Source

  2. Models are configured by default to use both the mysql and liveMysql connections. View Source

  3. A method called liveStream is added to the ChatController to enable subscribing and unsubscribing from the chat message stream. The liveFind method added to each model accepts two arguments: the find query options, and an optional data invalidation callback as defined in mysql-live-select. View Source

  4. The Angular controller performs a socket GET request on initialization to /chat/liveStream. On unsubscribing, a POST request containing a parameter unsubscribe set to true is performed to stop receiving updates. View Source

  5. Result set differences arrive on the client in the format provided by mysql-live-select and are applied to the data cache array using the applyDiff function copied from the server-side code for client-side usage. View Source

License

Unlicense

Docker Pull Command
Owner
philcollins
Source Repository

Comments (0)