This Node application perioducally receives JSON data from another web application, and serves it to clients connected to it.
brew install redis
redis-server
npm install
node --harmony server.js
Please see node-fetcher and node-dataprovider implementations too, all three applications work together - although not necessarily.
- A client connects to the application. ie. ws://node-websocket/some-key
- App subscribes this client to some-key channel in Redis
- App checks if there's data for some-key in Redis.
- If some-key's data is in Redis already, it serves it to connected client
- If some-key's data is not found, then requests it with via a socket from a specific server, ie. node-fetcher
- Waits to receive data for some-key, over a ZMQ socket. When data is received, saves it to Redis (triggering subscribers to receive the message).
Go to localhost:5000/?matchesfeed/8/matchcentre for a demo
When you have all three applications, you should start node-socketio as:
PORT=5000 FETCHER_ADDRESS='http://localhost:4000/fetchlist/new/' REDIS_DEBUG=true node --harmony server.js