Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
indent20px
 

This KIP discusses the Websocket support for Apache Knox.

...

 A detailed example demonstrating websocket configuration (using docker containers for simplicity) can be found here https://github.com/moresandeep/knox-dev-docker#demo-knox-dev-container–zeppelin

Future work

  • Implement binary protocol
  • Better handling of security on the dispatch side
  • Async and non blocking support
  • Extract the functionality to parse the service defination and topology files, preferably into a framework, that can be used by other similar components.
  • Handle rewrite rules, currently we simply proxy packets, this would be a bit tricky with binary payload.
  • Address scalability, 1000s of multiple concurren connections

...

KNOX-772 - Implement binary protocol support for Websocket feature

Currently websocket feature in Knox only supports text messages, to be fully compatible with the websocket specs we need to support binary protocol as well.

KNOX-773 - Secure websocket support on the dispatch side and security enhancements

Currently Knox communicates with browser (or TCP based client) over secure socket however secure communication on the dispatch side is not tested. It is  unlikely that it will fail if the certificates for the dispatch (backed) server are provisioned in Knox - again need to check.

Also we need to support all the authentication mechanisms that Knox already supports.

KNOX-774 - Make websocket connections Async and Non-Blocking

Websocket connections could potentially hold up Jetty threads (during handshakes etc.) so it is important to have them non-blocking.

KNOX-775 - Create a generic framework that can be reused and extended by other protocols

Currently Websockets is the only non-http protocol Knox supports, it would help if we could create a generic framework that can be used by all non-http protocols such as Websockets, thrift etc. preventing code duplication and help code and resource re-use.

KNOX-776 - Rewrite rule handling for websockets

Currently we simply proxy websocket payload we should support some form of rewrite rule handling.

KNOX-777 - Address websocket scalability

Current websocket implementation is a bit taxing on memory it should be lightweight and Knox should be able to support 500 - 1K concurrent connections.