

message structure

{
    messageType: <string>,
    message: { id: <number>, text: <string>, sender: <string>, sent: <datetime>, link: <url>, channel: <number>},
    command: { id: <number>, command: <string>, params: [<string>: <string>]}
    data: <json structure>
}

Based on MessageType the client/server should know what to react with

eg - if messageType === 'message'
then Display sender/sent/text on screen
if messageType = 'image'
then display image from url on screen - optionally add text if supplied

Commands
/join - join channel - params: name: <channel name>
/

data should always be accompanied with either a command or a message details

Original Code
https://github.com/ajb413/nodejs-websocket-examples.git











# WebSocket, Socket, and PubNub Pub/Sub Messaging in Node.js

This repo contains some example code for making a Node.js socket server and client, a WebSocket server and client, and also PubNub based messaging with JavaScript. There is an example with browser JavaScript as well. Check out the YouTube video to see the code running if you don't want to take the time to clone and run.

## YouTube Video of Node.js WebSocket Examples
 - https://www.youtube.com/watch?v=YaJbc7s1ROg

## Tutorial Blog Post on PubNub Blog
 - [Node.js WebSocket Programming Examples | PubNub Blog](https://www.pubnub.com/blog/nodejs-websocket-programming-examples/?devrel_gh=nodejs-websocket-examples)

## Running the Code
 - [Install Node.js and NPM](https://nodejs.org/en/download/)
 - Clone this repo to your machine
 - `npm install`

### Node.js Socket Example
 - Open 2 command line windows
 - `node server.js`
 - In the other window...
 - `node client.js`

### Node.js WebSocket Example
 - `npm install` if you haven't already
 - `node websocket-server.js`
 - Open `client.html` in your web browser

### PubNub Pub/Sub Messaging Example
 - **Sign up for a free PubNub Account** and insert your **free API keys** into `pubnub-client1.js` and `pubnub-client2.js`
 - Open 2 command line windows
 - `npm install` if you haven't already
 - `node pubnub-client1.js`
 - In the other window...
 - `node pubnub-client2.js`

## Sign up for a free PubNub Account
<a href="https://dashboard.pubnub.com/signup?devrel_gh=websocket-nodejs-demo">
    <img alt="PubNub Signup" src="https://i.imgur.com/og5DDjf.png" width=260 height=97/>
</a>
