Used the abandoned ngx-sails as a base. Forked from ngx-sails
npm install socket.io-client@2
npm install @aloreljs/ngx-sails@18
:- Angular 18
The following injection tokens can be included in your app module to configure the client:
Provide an existing socket.io instance:
import {IO_INSTANCE} from '@aloreljs/ngx-sails';
@NgModule({
providers: [{
provide: IO_INSTANCE,
useValue: someIoRef
}]
})
export class AppModule {}
Provide client configuration:
import {NGX_SAILS_CONFIG, NgxSailsConfig} from '@aloreljs/ngx-sails';
const config: NgxSailsConfig = {
uri: '/foo',
// socket.io options
options: {
},
// default headers
headers: {
}
}
@NgModule({
providers: [{
provide: NGX_SAILS_CONFIG,
useValue: config
}]
})
export class AppModule {}
import {SailsClient} from '@aloreljs/ngx-sails';
@Component({})
export class MyComponent {
public constructor(private readonly sails: SailsClient) {}
public listenForEvent(): void {
this.sails.on('eventName').subscribe(response => {});
}
public makeRequest(): void {
this.sails.get('url').subscribe();
this.sails.post('url', {foo: 'bar'}).subscribe(response => {});
}
public emitEventWithoutAResponse(): void {
this.sails.emit('eventName', 'arg1', 'arg2');
}
public emitEventWithAResponse(): void {
this.sails.emitAndWait('eventName', 'arg1', 'arg2').subscribe(response => {})
}
}