olorin
Version:
CoffeeScript Myo Bindings
41 lines (33 loc) • 1.19 kB
text/coffeescript
_ = require('underscore')
events = require('./events')
WebSocket = require('ws')
class Connection extends events.Events
# Connection constructor
# A very simple wrapper class around a web socket connection which knows about the kind of message a myo can receive
# @param {object} configuration
constructor: (configuration) ->
super
@configuration = _.extend({}, @defaultConfiguration, configuration)
@url = @configuration.socketUrl + @configuration.apiVersion
@socket = new @SocketClass(@configuration.socketUrl)
@socket.onmessage = @onMessage
SocketClass: WebSocket
defaultConfiguration: {
socketUrl: "ws://127.0.0.1:10138/myo/"
apiVersion: 1
}
messageTypes: {
event: 'event'
}
onMessage: (message) =>
data = JSON.parse(message.data)
messageType = data[0]
eventData = data[1]
if messageType != @messageTypes.event
throw new Error('Unknown message received: ' + message.toString())
@trigger('message', eventData)
close: () ->
@socket.close() # not sure about that
_.extend(exports, {
Connection: Connection
})