qws
Version:
An HTML5 Web Sockets Server Module
30 lines (26 loc) • 851 B
text/coffeescript
{Message} = require './message'
{EventEmitter} = require 'events'
os = require 'options-stream'
class Server extends EventEmitter
constructor : (, options) ->
= os {
url : '/ws'
deflate : true
min_deflate_length : 32
}, options
.__QWS_NUM = 0 unless .__QWS_NUM
.__QWS_NUM++
server.on 'upgrade', (req, socket) =>
socket.__QWS_NUM = .__QWS_NUM unless socket.__QWS_NUM
try
msg = new Message req, socket,
catch e
if 'URLNOTMATCHED' is e.message
if 0 is --socket.__QWS_NUM
socket.end 'HTTP/1.1 400 Bad Request\r\n\r\nurl not matched\r\n'
return
else
throw e
'connect', msg
return
exports.Server = Server