Netty-socketio Overview
===
[![Maven Central](https://img.shields.io/maven-central/v/com.corundumstudio.socketio/netty-socketio.svg?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/com.corundumstudio.socketio/netty-socketio/)
This project is an open-source Java implementation of [Socket.IO](http://socket.io/) server. Based on [Netty](http://netty.io/) server framework.
Checkout [Demo project](https://github.com/mrniko/netty-socketio-demo)
Licensed under the Apache License 2.0.
Features
================================
* Supports __0.7__...__0.9.16__ (netty-socketio 1.6.6) and __1.0+__ (netty-socketio latest version) version of [Socket.IO-client](https://github.com/LearnBoost/socket.io-client)
* Supports xhr-polling transport
* Supports websocket transport
* Supports namespaces and rooms
* Supports ack (acknowledgment of received data)
* Supports SSL
* Supports client store (Memory, [Redisson](http://redisson.org), [Hazelcast](http://www.hazelcast.com/))
* Supports distributed broadcast across netty-socketio nodes ([Redisson](http://redisson.org), [Hazelcast](http://www.hazelcast.com/))
* Supports OSGi
* Supports Spring
* Lock-free and thread-safe implementation
* Declarative handler configuration via annotations
Performance
================================
Customer feedback in __2012__:
CentOS, 1 CPU, 4GB RAM runned on VM:
CPU 10%, Memory 15%
6000 xhr-long polling sessions or 15000 websockets sessions
4000 messages per second
Customer feedback in __2014__:
"To stress test the solution we run 30 000 simultaneous websocket clients and managed to peak at total of about 140 000 messages per second with less than 1 second average delay." (c) Viktor Endersz - Kambi Sports Solutions
Projects using netty-socketio
================================
AVOS Cloud: [avoscloud.com](https://avoscloud.com/)
Bingo Crack: [bingocrack.com](http://bingocrack.com/)
Kambi Sports Solutions: [kambi.com](http://kambi.com/)
ARSnova: [arsnova.eu](https://arsnova.eu)
Zipwhip: [zipwhip.com](https://zipwhip.com/)
Recent Releases
================================
#### Please Note: trunk is current development branch.
#### 27-Aug-2016 - version 1.7.12 released
Feature - `SocketIOServer.removeAllListeners` method added
Feature - `BroadcastOperations.sendEvent` method with `excludedClient` param added
Improvement - Redisson updated to 2.4.0
Fixed - memory leak in Namespace object (thanks to @CrazyIvan007)
#### 13-Jul-2016 - version 1.7.11 released
Fixed - Throw error if transport not supported
Fixed - Client disconnecting when using Polling - IndexOutOfBoundsException
#### 4-Mar-2016 - version 1.7.10 released
Fixed - netty updated to 4.1.0.CR3 version
Fixed - binary packet parsing (thanks to Winston Li)
#### 6-Feb-2016 - version 1.7.9 released
Feature - Compression support
Fixed - DotNET client request handling
Fixed - Packet length format parsing
Fixed - skipping 'd=' in packet
Fixed - Polling clients sporatically get prematurely disconnected (thanks to lpage30)
Fixed - connections stay open forever if server sent `close` packet
Fixed - compatibility with Redisson latest version
#### 30-Nov-2015 - version 1.7.8 released
Improvement - `WebSocketServerHandshaker.allowExtensions` is `true` now
Improvement - SessionID cookie implementation (thanks to @ryandietrich)
Fixed - clientRooms leak (thanks to @andreaspalm)
Fixed - ExceptionListener not used for errors in JSON parsing
Fixed - "silent channel" attack
#### 26-Mar-2015 - version 1.6.7 released
Improvement - `useStrictOrdering` param added for websocket packets strict ordering
Improvement - `FAIL_ON_EMPTY_BEANS = false` option setted in json decoder
#### 18-Feb-2015 - version 1.7.7 released
Improvement - no need to add jackson lib if you use own JsonSupport impl
Fixed - SocketIO client 1.3.x support
Fixed - Charset encoding handling (thanks to alim-akbashev)
#### 17-Jan-2015 - version 1.7.6 released
Improvement - `SocketIONamespace.getName()` added
Fixed - WebSocket frames aggregation
Fixed - WebSocket buffer release
Fixed - `Unexpected end-of-input in VALUE_STRING` error
Fixed - Access-Control-Allow-Credentials is TRUE for requests with origin header
#### 05-Dec-2014 - version 1.7.5 released
Feature - `Configuration.sslProtocol` param added
Fixed - BinaryEvent ack handling
Fixed - BinaryEvent non b64 encoding/decoding
Fixed - buffer leak during packet encoding
#### 15-Nov-2014 - version 1.7.4 released
Fixed - packet encoding
Fixed - BinaryEvent encoding/decoding
Fixed - unchallenged connections handling
#### 29-Sep-2014 - version 1.6.6 released
Feature - `origin` setting added
Feature - `crossDomainPolicy` setting added
Feature - `SocketIOServer.startAsync` method added
#### 24-Sep-2014 - version 1.7.3 released
Feature - Epoll support
Improvement - BinaryEvent support
Fixed - SocketIOClient disconnect handling
Fixed - broadcast callback
Fixed - NPE then no transport defined during auth
Fixed - ping timeout for polling transport
Fixed - buffer leak in PacketEncoder
#### 22-Aug-2014 - version 1.7.2 released
Fixed - wrong outgoing message encoding using websocket transport
Fixed - NPE in websocket transport
Fixed - multiple packet decoding in polling transport
Fixed - buffer leak
#### 07-Jul-2014 - version 1.7.1 released
Feature - ability to set custom `Access-Control-Allow-Origin` via Configuration.origin
Fixed - connection via CLI socket.io-client
#### 28-Jun-2014 - version 1.7.0 released
Feature - Socket.IO 1.0 protocol support. Thanks to the new protocol decoding/encoding has speedup
__Dropped__ - `SocketIOClient.sendMessage`, `SocketIOClient.sendJsonObject` methods and corresponding listeners
__Dropped__ - Flashsocket transport support
__Dropped__ - protocol version 0.7 ... 0.9.16
#### 13-May-2014 - version 1.6.5 released
Improvement - single packet encoding optimized, used mostly in WebSocket transport. Encoding time reduced up to 40% (thanks to Viktor Endersz)
Improvement - rooms handling optimized
Improvement - ExceptionListener.exceptionCaught method added
__Breaking api change__ - Configuration.autoAck replaced with ackMode
Feature - trustStore setting added
Feature - maxFramePayloadLength setting added
Feature - getAllClients and getClient methods added to SocketIONamespace
Fixed - SocketIOServer.getAllClients returns wrong clients amount
#### 25-Mar-2014 - version 1.6.4 released
Fixed - message release problem
Fixed - problem with exception listener configuration redefinition
__Breaking api change__ - DataListener.onData now throws Exception
Improvement - data parameter added to exception listener
Improvement - ability to setup socket configuration
Improvement - Configuration.autoAck parameter added
#### 06-Mar-2014 - version 1.6.3 released
Fixed - AckCallback handling during client disconnect
Fixed - unauthorized handshake HTTP code changed to 401
__Breaking api change__ - Configuration.heartbeatThreadPoolSize setting removed
Feature - annotated Spring beans support via _SpringAnnotationScanner_
Feature - common exception listener
Improvement - _ScheduledExecutorService_ replaced with _HashedWheelTimer_
#### 08-Feb-2014 - version 1.6.2 released
Fixed - wrong namespace client disconnect handling
Fixed - exception in onConnect/onDisconnect/isAuthorized methods leads to server hang
__Breaking api change__ - SocketIOClient.sendEvent methods signature changed
Improvement - multi type events support via _MultiTypeEventListener_ and _OnEvent_ annotation
Improvement - multi type events ack support via _MultiTypeAckCallback_
Improvement - SocketIOClient.getHandshakeData method added
Improvement - Jedis replaced with [Redisson](https://github.com/mrniko/redisson)
#### 14-Jan-2014 - version 1.6.1 released
Fixed - JDK 1.6+ compatibility
Feature - aut
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
netty socketio 在线聊天程序 (118个子文件)
.gitignore 50B
Configuration.java 17KB
EncoderHandler.java 14KB
JacksonJsonSupport.java 13KB
PacketEncoder.java 12KB
Namespace.java 12KB
PacketDecoder.java 12KB
AuthorizeHandler.java 10KB
SocketIOChannelInitializer.java 10KB
ClientHead.java 9KB
WebSocketTransport.java 9KB
SocketIOServer.java 9KB
PollingTransport.java 8KB
AckManager.java 6KB
OnEventScanner.java 6KB
NamespaceClient.java 6KB
BroadcastOperations.java 5KB
InPacketHandler.java 4KB
PacketListener.java 4KB
HashedWheelTimeoutScheduler.java 4KB
ScannerEngine.java 4KB
UTF8CharsScanner.java 4KB
BaseStoreFactory.java 4KB
Packet.java 3KB
PayloadTest.java 3KB
HashedWheelScheduler.java 3KB
HandshakeData.java 3KB
HazelcastPubSubStore.java 3KB
SpringAnnotationScanner.java 3KB
RedissonPubSubStore.java 3KB
AckRequest.java 3KB
JsonSupportWrapper.java 3KB
NamespacesHub.java 3KB
DecoderEventPacketTest.java 2KB
CompositeIterable.java 2KB
HazelcastStoreFactory.java 2KB
SocketIOClient.java 2KB
OnDisconnectScanner.java 2KB
OnConnectScanner.java 2KB
EncoderConnectionPacketTest.java 2KB
SocketConfig.java 2KB
AckCallback.java 2KB
WrongUrlHandler.java 2KB
BroadcastAckCallback.java 2KB
EncoderEventPacketTest.java 2KB
DecoderAckPacketTest.java 2KB
RedissonStoreFactory.java 2KB
DecoderConnectionPacketTest.java 2KB
ClientsBox.java 2KB
DecoderMessagePacketTest.java 2KB
DecoderJsonPacketTest.java 2KB
SchedulerKey.java 2KB
PacketType.java 2KB
EncoderMessagePacketTest.java 2KB
EncoderAckPacketTest.java 2KB
DefaultExceptionListener.java 2KB
AckSchedulerKey.java 2KB
MultiTypeArgs.java 2KB
JoinIteratorsTest.java 1KB
MemoryStoreFactory.java 1KB
JsonSupport.java 1KB
IterableCollection.java 1KB
TransportState.java 1KB
AuthPacket.java 1KB
HazelcastStore.java 1KB
ExceptionListenerAdapter.java 1KB
StoreFactory.java 1KB
PacketsMessage.java 1KB
RedissonStore.java 1KB
DispatchMessage.java 1KB
Transport.java 1KB
JoinLeaveMessage.java 1KB
MemoryPubSubStore.java 1KB
SocketIONamespace.java 1KB
OutPacketMessage.java 1KB
MemoryStore.java 1KB
ClientOperations.java 1KB
OnEvent.java 1KB
ClientListeners.java 1KB
EventEntry.java 1KB
CancelableScheduler.java 1KB
ExceptionListener.java 1KB
DecoderBaseTest.java 1KB
AckMode.java 1KB
MultiTypeAckCallback.java 1KB
VoidAckCallback.java 1KB
DisconnectMessage.java 1KB
OnDisconnect.java 1KB
ConnectMessage.java 1KB
SocketIOException.java 1KB
HttpMessage.java 1KB
OnConnect.java 1KB
Event.java 1022B
AnnotationScanner.java 1021B
DataListener.java 1017B
PubSubMessage.java 983B
HttpErrorMessage.java 961B
EncoderBaseTest.java 954B
SuccessAuthorizationListener.java 931B
AuthorizationListener.java 925B
共 118 条
- 1
- 2
资源评论
- 稀泥巴2019-01-15刚刚下下来,正准备用用
Flyercao
- 粉丝: 2
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功