/duct

Because every pub should have a ventilation!

Primary LanguageDart

Duct

Duct is clone of Socket.IO in Dart which aims to be protocol-level compatible with the original implementation.

Installing

First, add the library to the list of dependencies in your pubspec.yaml file:

duct:
    git: git://github.com/petrh/duct.git

Then, run pub install to install the package.

Usage

Here is Duct used on server-side with Dart's built-in HTTP server:

#import('package:duct/duct.dart');

main() {
  var server = new HttpServer();
  var duct = new Duct(server);
  server.listen('127.0.0.1', 8080);
  
  duct.sockets.on('connection').then((socket) {
    socket.emit('news', { 'hello': 'world' });
    socket.on('my other event').then((data) {
      print(data);
    });
  }); 
}

The corresponding client-side code looks as follows:

#import('package:duct/duct.dart');

void main() {
  var socket = Duct.connect('http://localhost');
  socket.on('news').then((data) {
    print(data);
    socket.emit('my other event', { 'my': 'data' });
  });
}

Contributing

Duct is at still at the early stage of development and all contribution are more than welcome. Fork Duct on GitHub, make it awesomer and send a pull request when it is ready.

Please note that one of the Duct's design goals is to use as many Dart idioms as possible while retaining the Socket.IO compatibility.

Contributors

License

Duct is licensed under the BSD License.