netty-demo
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.

105 lines
2.9 KiB

13 years ago
13 years ago
13 years ago
14 years ago
13 years ago
14 years ago
13 years ago
13 years ago
  1. #Netty-socketio Overview
  2. This project is an open-source Java implementation of [Socket.IO](http://socket.io/) server. Based on [Netty](http://netty.io/) server framework.
  3. Required JDK 1.5 (or above).
  4. Checkout [Demo project](https://github.com/mrniko/netty-socketio-demo)
  5. Licensed under the Apache License 2.0.
  6. ### Features
  7. * Supports 0.7+ version of [Socket.IO-client](https://github.com/LearnBoost/socket.io-client) up to latest - 0.9.6
  8. * Supports xhr-polling transport
  9. * Supports websocket transport (Hixie-75/76/Hybi-00, Hybi-10..Hybi-13)
  10. * Supports namespaces
  11. * Supports ack (acknowledgment of received data)
  12. #Usage example
  13. ##Server
  14. Configuration config = new Configuration();
  15. config.setHostname("localhost");
  16. config.setPort(81);
  17. SocketIOServer server = new SocketIOServer(config);
  18. server.addMessageListener(new DataListener<String>() {
  19. @Override
  20. public void onData(SocketIOClient client, String message) {
  21. ...
  22. }
  23. });
  24. server.addEventListener("someevent", SomeClass.class, new DataListener<SomeClass>() {
  25. @Override
  26. public void onData(SocketIOClient client, Object data) {
  27. ...
  28. }
  29. });
  30. server.addConnectListener(new ConnectListener() {
  31. @Override
  32. public void onConnect(SocketIOClient client) {
  33. ...
  34. }
  35. });
  36. server.addDisconnectListener(new DisconnectListener() {
  37. @Override
  38. public void onDisconnect(SocketIOClient client) {
  39. ...
  40. }
  41. });
  42. // Don't forget to include type field, it named '@class' by default,
  43. // with class full name.
  44. //
  45. // TIP: you can customize type name field via Configuration.jsonTypeFieldName property
  46. server.addJsonObjectListener(SomeClass.class, new DataListener<SomeClass>() {
  47. @Override
  48. public void onData(SocketIOClient client, SomeClass data) {
  49. ...
  50. // send object to socket.io client
  51. SampleObject obj = new SampleObject();
  52. client.sendJsonObject(obj);
  53. }
  54. });
  55. server.start();
  56. ...
  57. server.stop();
  58. ##Client
  59. <script type="text/javascript" src="socket.io.js" charset="utf-8"></script>
  60. <script type="text/javascript">
  61. var socket = io.connect('http://localhost:81', {
  62. 'reconnection delay' : 2000,
  63. 'force new connection' : true
  64. });
  65. socket.on('message', function(data) {
  66. // here is your handler on messages from server
  67. });
  68. socket.on('connect', function() {
  69. // connection established, now we can send an objects
  70. // send json-object to server
  71. var obj = ...
  72. socket.json.send(obj);
  73. });
  74. </script>