Websocket chatroom based on MySQL and Node
351
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.
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
The sails-mysql-live-select adapter is configured in config/connections.js in addition to the sails-mysql adapter. View Source
Models are configured by default to use both the mysql and liveMysql connections. View Source
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
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
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
Unlicense
Content type
Image
Digest
Size
175.2 MB
Last updated
about 10 years ago
docker pull philcollins/mysql-node-chatroom