UNPKG

ng2-cable

Version:

Easily integrate Rails' ActionCable into your Angular2/4/ionic2/3 application.

95 lines (64 loc) 2.68 kB
[![](https://img.shields.io/badge/npm-v4.1.2-brightgreen.svg)](https://www.npmjs.com/package/ng2-cable) <p align="center"> <img src='http://i.imgur.com/hicMwNW.png' alt='ng-cable logoe'/> </p> > Easily integrate Rails [ActionCable](https://github.com/rails/actioncable/tree/archive) into your Angular2/4/ionic3 application. ## Demo [https://ng2-cable-example.herokuapp.com](https://ng2-cable-example.herokuapp.com) [https://github.com/viktor-shmigol/ng2-cable-example](https://github.com/viktor-shmigol/ng2-cable-example) [https://github.com/viktor-shmigol/ng2-cable-ionic3-example](https://github.com/viktor-shmigol/ng2-cable-ionic3-example) ## Blog [How easily integrate Rails' ActionCable into your Angular2/4/ionic2 application](https://blog.active-bridge.com/how-easily-integrate-rails-actioncable-into-your-angular2-ionic2-application) ## Install ```bash npm install ng2-cable --save ``` And if we use the SystemJS loader, we would have to add our library to the config.js file like this: System.config({ paths: { 'ng2-cable': 'node_modules/ng2-cable/index.js', 'actioncable': 'node_modules/actioncable/lib/assets/compiled/action_cable.js' } }); ## Usage 1. Add Ng2CableModule into your AppModule class. `app.module.ts` would look like this: import {NgModule} from '@angular/core'; import { Ng2CableModule } from 'ng2-cable'; @NgModule({ imports: [Ng2CableModule], declarations: [AppComponent], bootstrap: [AppComponent], }) export class AppModule { } 2. app.ts import { Component } from '@angular/core'; import { Ng2Cable, Broadcaster } from 'ng2-cable'; @Component({ moduleId: module.id, selector: 'sd-app', templateUrl: 'app.component.html' }) export class AppComponent { constructor(private ng2cable: Ng2Cable, private broadcaster: Broadcaster) { this.ng2cable.subscribe('http://example.com/cable', 'ChatChannel', { room: 'My room' }); //By default event name is 'channel name'. But you can pass from backend field { action: 'MyEventName'} this.broadcaster.on<string>('ChatChannel').subscribe( message => { console.log(message); } ); } } ## API Ng2-cable **.subscribe(url, channel, params)** Method allows to subscribe to a channel. **.unsubscribe()** Method allows to unsubscribe from a channel. **.setCable(url)** Method allows to connect consumer ## API Broadcaster **.on<string>('Name')** Method allows to subscribe to a event. **.broadcast('event', object)** Method allows to broadcast event.