Skip to content

Instantly share code, notes, and snippets.

@exupero
Created May 5, 2011 18:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save exupero/957606 to your computer and use it in GitHub Desktop.
Save exupero/957606 to your computer and use it in GitHub Desktop.
CoffeeScript function to create a long-polling server
http = require 'http'
createLongPollingServer = (interval, {getData, returnData}) ->
http.createServer (request, response) ->
poll = ->
data = getData request
return setTimeout poll, interval if not data
response.writeHead 200, 'Content-Type': 'text/plain'
returnData response, data
setTimeout poll, interval
server = createLongPollingServer 500
getData: (request) ->
# a request of some resource would go here...
'yippee!' if Math.random() > .5
returnData: (response, data) ->
response.end "#{ data }\n"
server.listen 8012, '127.0.0.1'
console.log 'Server running...'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment