UNPKG

qws

Version:

An HTML5 Web Sockets Server Module

70 lines (64 loc) 2.02 kB
#mocha e = require 'expect.js' ws = require '../lib/index.js' http = require 'http' net = require 'net' describe 'WebSocket Server', -> hs = null port = null beforeEach (done)-> hs = new http.Server(); hs.on 'listening', -> {port} = hs.address() done() hs.listen() afterEach (done)-> hs.close -> setTimeout done, 50 req = (bin, cb, cbhs) -> client = net.connect port:port client.on 'connect', -> client.write ''' GET ws://localhost:8080/ws HTTP/1.1 Origin: http://localhost:8080 Host: localhost:8080 Sec-WebSocket-Key: TtP40xnf6AdhK2cpyo7vCw== Upgrade: websocket Sec-WebSocket-Extensions: x-webkit-deflate-frame Connection: Upgrade Sec-WebSocket-Version: 13\r\n\r\n ''' handShake = null client.once 'data', (chunk)-> handShake = chunk.toString() cbhs handShake if cbhs client.write bin client.once 'data', (chunk) -> cb handShake, chunk if cb it 'createServer', (done) -> w = ws.createServer hs, (data, msg) -> e(data).to.be 'abc' msg.close() done() req bin = new Buffer [0x81, 0x03, 0x61, 0x62, 0x63] e(w).to.be.a ws.Server it 'createServer compressed', (done) -> w = ws.createServer hs, (data, msg) -> e(data).to.be 'abc' msg.close() done() req new Buffer [0xc1, 0x85, 0x2c, 0x12, 0x5c, 0x24, 0x66, 0x5e, 0x16, 0x22, 0x2c] it 'createFrame', -> f = ws.createFrame data : new Buffer [0x61, 0x62, 0x63, 0x61, 0x62, 0x63] e(f).to.be.a ws.Frame it 'create server but url not matched', (done)-> w = ws.createServer hs, url : '/aa', (data, msg) -> # e(data).to.be 'abc' # msg.close() # done() req (bin = new Buffer [0x81, 0x03, 0x61, 0x62, 0x63]), null, (handShake) -> # console.log handShake e(handShake).to.be.match /^HTTP\/1\.1 400/ e(handShake).to.be.match /url not matched/ done() # e(w).to.be.a ws.Server