Socket.D reactive network protocol, v2.2.2 released

Some users said, "Socket.D is to Socket, just like Vue is to Js and Mvc is to HTTP."

Main features

  • Based on events, each message can be event routed
  • The so-called semantics is semantic description through meta-information.
  • Stream correlation, related messages going back and forth will be strung together into a stream
  • Language-independent, using binary to transmit data (supports tcp, ws, udp). Supports multiple languages ​​and platforms
  • Disconnection and reconnection, automatic connection recovery
  • Multiplexing, a single connection allows multiple request and response messages to run simultaneously
  • Two-way communication, single link, two-way listening and sending
  • Automatic fragmentation, if the data exceeds 16Mb (size configurable), it will be automatically fragmented and reorganized (except udp)
  • The interface is simple and responsive but uses a callback interface

Simple comparison with other protocols

Compare items socket.d http websocket rsocket socket.io
Send message (Qos0) have none have have have
Send and request (Qos1) have have none have none
Send and subscribe have none none have none
reply or response have have none have none
Single connection two-way communication have none Yes (inconvenience) have Yes (inconvenience)
Data sharding have / none have have
Automatic reconnection after disconnection have / none have have
meta information have have none have none
There is an event (or path) have have none none have
There is a flow (or message correlation) have none none have none
Broker mode cluster have none none have none
asynchronous asynchronous Synchronize asynchronous asynchronous asynchronous
Interface experience classic classic classic Responsive (complex) classic
basic transport protocol tcp, udp, ws tcp http tcp, udp, ws ws

This implementation framework update

  • Adjust sharding processing to callback mode. Synchronize with js (more adaptable)
  • Adjust BufferReader and rename it to CodecReader
  • Adjust BufferWriter and rename it to CodecWriter
  • Adjust some interface method names to facilitate cross-language migration and development!!!
  • Adjust some method naming to facilitate cross-language development
  • Adjust fixed Codec type definition (no need for generics)
  • Adjustments prevent Codec from being modified externally (it is the kernel after all)
  • Optimize connector thread release processing
  • Optimize the closing processing of smartsocket adaptation
  • Optimize thread number processing for netty adaptation
  • Fix the problem of event loss when sharding
  • Fixed the problem of ClusterClientSession::getSessionOne polling target error
  • Reduce the number of threads adapted to aio and nio
  • smartsocket upgraded to 1.5.40

code repository

Official website

おすすめ

転載: www.oschina.net/news/273978/socketd-2-2-2-released
おすすめ