Allow stream_channel version 2.x (#18)

Although there are no imports to `stream_channel` from this package we
do use some of the APIs. None of those apis are impacted by the planned
breaking changes in `stream_channel`.

- Extend range for `stream_channel`.
- Correct style on other constraints.
- Expand description.
2 files changed
tree: cf4785ddf0e57e633deeb7c26a01b3a67de62f4a
  1. lib/
  2. test/
  3. .gitignore
  4. .test_config
  5. .travis.yml
  6. CHANGELOG.md
  7. codereview.settings
  8. LICENSE
  9. pubspec.yaml
  10. README.md
README.md

Web Socket Handler for Shelf

shelf_web_socket is a Shelf handler for establishing WebSocket connections. It exposes a single function, webSocketHandler, which calls an onConnection callback with a CompatibleWebSocket object for every connection that's established.

import 'package:shelf/shelf_io.dart' as shelf_io;
import 'package:shelf_web_socket/shelf_web_socket.dart';

void main() {
  var handler = webSocketHandler((webSocket) {
    webSocket.stream.listen((message) {
      webSocket.add("echo $message");
    });
  });

  shelf_io.serve(handler, 'localhost', 8080).then((server) {
    print('Serving at ws://${server.address.host}:${server.port}');
  });
}