Simple and flexible integration for ActionCable and Angular2/4/5+ applications.
npm install angular2-actioncable
Use the ActionCableService to create an ActionCable consumer and subscribe to a channel.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { Subscription } from 'rxjs/Subscription';
import { ActionCableService, Channel } from 'angular2-actioncable';
import { MessageService } from './shared/messages/message.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit, OnDestroy {
subscription: Subscription;
constructor(
private cableService: ActionCableService,
private messageService: MessageService
) { }
ngOnInit() {
// Open a connection and obtain a reference to the channel
const channel: Channel = this.cableService
.cable('ws://cable.example.com')
.channel('ChatChannel', {room : 'Best Room'});
// Subscribe to incoming messages
this.subscription = channel.messages.subscribe(message => {
this.messageService.notify(message);
});
}
ngOnDestroy() {
// Unsubscribing from the messages Observable automatically
// unsubscribes from the ActionCable channel as well
this.subscription.unsubscribe();
}
}
Open a new ActionCable connection to the url. Any number of connections can be created.
Close an open connection for the url.
Create a new subscription to a channel, optionally with topic paramters.
Close the connection.
Once a channel subscription is created, the messages
Observable will emit any messages the channel receives.
For easy clean-up, when this Observable is completed the ActionCable channel will also be closed.
Broadcast message to other clients subscribed to this channel.
Unsubscribe from the channel.