Awesome
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
-
The
sails-mysql-live-select
adapter is configured inconfig/connections.js
in addition to thesails-mysql
adapter. View Source -
Models are configured by default to use both the
mysql
andliveMysql
connections. View Source -
A method called
liveStream
is added to theChatController
to enable subscribing and unsubscribing from the chat message stream. TheliveFind
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 -
The Angular controller performs a socket
GET
request on initialization to/chat/liveStream
. On unsubscribing, aPOST
request containing a parameterunsubscribe
set totrue
is performed to stop receiving updates. View Source -
Result set differences arrive on the client in the format provided by
mysql-live-select
and are applied to the data cache array using theapplyDiff
function copied from the server-side code for client-side usage. View Source
License
Unlicense