Created
April 4, 2011 21:47
-
-
Save enriquez/902518 to your computer and use it in GitHub Desktop.
Socket.IO wrapper using Microevent for binding/triggering custom events.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ClientSocket | |
constructor: () -> | |
@socket = new io.Socket() | |
@socket.connect() | |
@socket.on 'connect', => | |
this.trigger('connect.server', null) | |
@socket.on 'message', (response) => | |
this.trigger(response.trigger, response.payload) | |
@socket.on 'disconnect', => | |
this.trigger('disconnect.server', null) | |
sendServerEvent: (event, payload) -> | |
request = { | |
trigger: event | |
payload: payload | |
} | |
@socket.send request | |
MicroEvent.mixin ClientSocket | |
window.ClientSocket = ClientSocket | |
# Example usage | |
class MyClient extends ClientSocket | |
submit: (message) => | |
this.sendServerEvent('message.client', message) | |
window.MyClient = MyClient |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ServerSocket | |
constructor: () -> | |
@socket = io.listen(app) | |
@socket.on 'connection', (client) => | |
this.trigger('connect.client', client) | |
client.on 'message', (request) => | |
this.trigger(request.trigger, request.payload) | |
client.on 'disconnect', => | |
this.trigger('disconnect.client', client) | |
MicroEvent.mixin ServerSocket | |
# Example usage | |
serverSocket = new ServerSocket() | |
serverSocket.bind 'message.client', (message) -> | |
response = { | |
trigger: 'message.server' | |
payload: message | |
} | |
serverSocket.socket.broadcast(response) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment