|
|
@ -209,123 +209,3 @@ YourKit, LLC is the creator of innovative and intelligent tools for profiling |
|
|
|
Java and .NET applications. Take a look at YourKit's leading software products: |
|
|
|
<a href="http://www.yourkit.com/java/profiler/index.jsp">YourKit Java Profiler</a> and |
|
|
|
<a href="http://www.yourkit.com/.net/profiler/index.jsp">YourKit .NET Profiler</a>. |
|
|
|
|
|
|
|
|
|
|
|
Usage example |
|
|
|
================================ |
|
|
|
##Server |
|
|
|
|
|
|
|
Base configuration. More details about Configuration object is [here](https://github.com/mrniko/netty-socketio/wiki/Configuration-details). |
|
|
|
|
|
|
|
Configuration config = new Configuration(); |
|
|
|
config.setHostname("localhost"); |
|
|
|
config.setPort(81); |
|
|
|
|
|
|
|
SocketIOServer server = new SocketIOServer(config); |
|
|
|
|
|
|
|
Programmatic handlers binding: |
|
|
|
|
|
|
|
server.addEventListener("someevent", SomeClass.class, new DataListener<SomeClass>() { |
|
|
|
@Override |
|
|
|
public void onData(SocketIOClient client, Object data, AckRequest ackRequest) { |
|
|
|
... |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
server.addConnectListener(new ConnectListener() { |
|
|
|
@Override |
|
|
|
public void onConnect(SocketIOClient client) { |
|
|
|
... |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
server.addDisconnectListener(new DisconnectListener() { |
|
|
|
@Override |
|
|
|
public void onDisconnect(SocketIOClient client) { |
|
|
|
... |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// Don't forget to include type field on javascript side, |
|
|
|
// it named '@class' by default and should equals to full class name. |
|
|
|
// |
|
|
|
// TIP: you can customize type field name via Configuration.jsonTypeFieldName property. |
|
|
|
|
|
|
|
server.addJsonObjectListener(SomeClass.class, new DataListener<SomeClass>() { |
|
|
|
@Override |
|
|
|
public void onData(SocketIOClient client, SomeClass data, AckRequest ackRequest) { |
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
// send object to socket.io client |
|
|
|
SampleObject obj = new SampleObject(); |
|
|
|
client.sendJsonObject(obj); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
Declarative handlers binding. Handlers could be bound via annotations on any object: |
|
|
|
|
|
|
|
pubic class SomeBusinessService { |
|
|
|
|
|
|
|
... |
|
|
|
// some stuff code |
|
|
|
... |
|
|
|
|
|
|
|
// SocketIOClient, AckRequest and Data could be ommited |
|
|
|
@OnEvent('someevent') |
|
|
|
public void onSomeEventHandler(SocketIOClient client, SomeClass data, AckRequest ackRequest) { |
|
|
|
... |
|
|
|
} |
|
|
|
|
|
|
|
@OnConnect |
|
|
|
public void onConnectHandler(SocketIOClient client) { |
|
|
|
... |
|
|
|
} |
|
|
|
|
|
|
|
@OnDisconnect |
|
|
|
public void onDisconnectHandler(SocketIOClient client) { |
|
|
|
... |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
SomeBusinessService someService = new SomeBusinessService(); |
|
|
|
server.addListeners(someService); |
|
|
|
|
|
|
|
|
|
|
|
server.start(); |
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
server.stop(); |
|
|
|
|
|
|
|
##Client |
|
|
|
|
|
|
|
<script type="text/javascript" src="socket.io.js" charset="utf-8"></script> |
|
|
|
|
|
|
|
<script type="text/javascript"> |
|
|
|
|
|
|
|
var socket = io.connect('http://localhost:81', { |
|
|
|
'reconnection delay' : 2000, |
|
|
|
'force new connection' : true |
|
|
|
}); |
|
|
|
|
|
|
|
socket.on('message', function(data) { |
|
|
|
// here is your handler on messages from server |
|
|
|
}); |
|
|
|
|
|
|
|
socket.on('connect', function() { |
|
|
|
// connection established, now we can send an objects |
|
|
|
|
|
|
|
|
|
|
|
// send event-object to server |
|
|
|
// '@class' property is NOT necessary in this case |
|
|
|
var event = { |
|
|
|
... |
|
|
|
}; |
|
|
|
socket.emit('someevent', event); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
</script> |