iocat
Version:
WebSocket netcat with Socket.io support
87 lines (70 loc) • 1.78 kB
text/coffeescript
{Base} = require './Base'
ws = require 'ws'
class WSServer extends Base
constructor: ( = {}) ->
'constructor'
= []
.port ?= .localPort
return @
start: =>
'start'
= new ws.Server
.on 'listening',
.on 'connection',
.on 'error',
isActive: =>
? and ? and
_enqueue: (data) =>
.push data
# Methods
send: (data) =>
unless do
data
else
'send', data
.send data
end: (fn = null) =>
'end'
do .close if do
= null
= null
= false
do fn if fn
# WSServer Events
onWSServerListening: =>
'onWSServerListening'
'listening'
onWSServerConnection: (socket) =>
#console.dir socket
'onWSServerConnection'
'connection'
= socket
.on 'open',
.on 'close',
.on 'error',
.on .emitKey,
.on 'connect',
= true
for data in
data
onWSServerError: (err) =>
'onWSServerError', err
'error', err
# Client Events
onClientConnect: =>
'onClientConnect'
'connect'
onClientOpen: =>
'onClientOpen'
'open'
onClientClose: =>
'onClientClose'
'close'
onClientError: (err) =>
'onClientError', err
'error', err
onClientMessage: (msg) =>
'onClientMessage', msg
.emitKey, msg
module.exports =
WSServer: WSServer