You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#Netty-socketio Overview
This project is an open-source Java implementation of [Socket.IO](http://socket.io/) server. Based on [Netty](http://netty.io/) server framework. Required JDK 1.5 (or above).
Checkout [Demo project](https://github.com/mrniko/netty-socketio-demo)
Licensed under the Apache License 2.0.
### Features
* Supports 0.7+ version of [Socket.IO-client](https://github.com/LearnBoost/socket.io-client) up to latest - 0.9.6 * Supports xhr-polling transport * Supports websocket transport (Hixie-75/76/Hybi-00, Hybi-10..Hybi-13) * Supports namespaces * Supports ack (acknowledgment of received data) * Supports SSL
#Usage example
##Server
Configuration config = new Configuration(); config.setHostname("localhost"); config.setPort(81);
SocketIOServer server = new SocketIOServer(config); server.addMessageListener(new DataListener<String>() { @Override public void onData(SocketIOClient client, String message) { ... } });
server.addEventListener("someevent", SomeClass.class, new DataListener<SomeClass>() { @Override public void onData(SocketIOClient client, Object data) { ... } });
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) {
...
// send object to socket.io client SampleObject obj = new SampleObject(); client.sendJsonObject(obj); } });
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 json-object to server // '@class' property should be defined and should // equals to full class name. var obj = { '@class' : 'com.sample.SomeClass', ... }; socket.json.send(obj);
// send event-object to server // '@class' property is NOT necessary in this case var event = { ... }; socket.emit('someevent', event);
});
</script>
|