Skip to content

Repository files navigation

Pub

All Contributors

ActionCable in Dart

ActionCable is the default realtime websocket framework and protocol in Rails.

This is a dart port of the client and protocol implementation which is available in web, dartVM and flutter.

Usage

Connecting to a channel 🙌

cable =ActionCable.connect(
"ws://10.0.2.2:3000/cable",
headers: {
"Authorization":"Some Token",
},
onConnected: (){
print("connected");
},
onConnectionLost: () {
print("connection lost");
},
onCannotConnect: () {
print("cannot connect");
});

Subscribing to channel 🎉

cable.subscribe(
"Chat", // either "Chat" and "ChatChannel" is fine
channelParams: { "room":"private" },
onSubscribed: (){}, // `confirm_subscription` received
onDisconnected: (){}, // `disconnect` received
onMessage: (Map message) {} // any other message received
);

Unsubscribing from a channel 🎃

cable.unsubscribe(
"Chat", // either "Chat" and "ChatChannel" is fine
{"room":"private"}
);

Perform an action on your ActionCable server 🎇

Requires that you have a method defined in your Rails Action Cable channel whose name matches the action property passed in.

cable.performAction(
"Chat",
action:"send_message",
channelParams: { "room":"private" },
actionParams: { "message":"Hello private peeps! 😜" }
);

Disconnect from the ActionCable server

cable.disconnect();

ActionCable protocol

Anycable has a great doc on that topic.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Clinton

💻⚠️

Hamad AlGhanim

💻

Fareesh Vijayarangam

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

About

actioncable client in dart, for pure dart or flutter project

Topics

Resources

Stars

26 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages