groovebasin/groovebasind

43 lines
1,013 B
CoffeeScript
Executable file

#!/usr/bin/env coffee
http = require 'http'
net = require 'net'
socketio = require 'socket.io'
static = require 'node-static'
config =
log_level: 3
http:
port: 7777
mpd:
host: 'localhost'
port: 6600
fileServer = new (static.Server) './public'
app = http.createServer((request, response) ->
request.addListener 'end', ->
fileServer.serve request, response
).listen(config.http.port)
io = socketio.listen(app)
io.set 'log level', config.log_level
io.sockets.on 'connection', (socket) ->
client = null
connectClient = ->
client = net.connect config.mpd.port, config.mpd.host, ->
console.log 'client connected'
client.on 'data', (data) ->
socket.emit 'FromMpd', data.toString()
client.on 'end', ->
console.log 'client disconnected, reconnecting'
connectClient()
connectClient()
socket.on 'ToMpd', (data) ->
console.log "[in] " + data
client.write data
socket.on 'disconnect', ->
client.removeAllListeners 'end'
client.end()