Dart/Flutter Websocket Client SDK for communication with Sails from a mobile application(or any client running Dart or Flutter)

Usage

A simple usage example:

import 'package:sails_io/sails_io.dart';
import 'package:socket_io_client/socket_io_client.dart' as socket_io_client;

void main() {
  var io = SailsIOClient(socket_io_client.io(
      'http://example_websocket_url.com?__sails_io_sdk_version=0.11.0',
      socket_io_client.OptionBuilder().setTransports(['websocket']).build()));

  io.socket.onConnect((_) {
    print('Connected');
  });

  io.socket.on('user', (message) {});
  io.socket.onDisconnect((_) => print('disconnected'));

  io.post(
      url: 'http://example_websocket_url.com/chats',
      data: {
        'textContent': 'New chat from sails_io',
        'counterpartId': '464684932623463467'
      },
      cb: (body, jwrResponse) {
        print(body);
        print(jwrResponse.toJSON());
      });
}

The __sails_io_sdk_version query string

Currently, the Sails websocket server expects that the socket client connecting with it is >= 0.11.0 or it will default to a version of 0.9.0.

To override this notice we are passing the query string to the URL when connecting like so

 var io = SailsIOClient(socket_io_client.io(
      'http://example_websocket_url.com?__sails_io_sdk_version=0.11.0',
      socket_io_client.OptionBuilder().setTransports(['websocket']).build()));

Do note that this is important because even if your socket connects without the string, trying to listen or use the virtual requests i.e io.post or io.get will result in an error on your Sails server saying the version of the SDK is incompatible

Features and bugs

Please file feature requests and bugs at the issue tracker.

Libraries

sails_io
Support for doing something awesome.