New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ngx-sse-client

Package Overview
Dependencies
Maintainers
0
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngx-sse-client

A simple SSE (Server Sent Events) client for Angular applications.

  • 19.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
6K
decreased by-13.32%
Maintainers
0
Weekly downloads
 
Created
Source

NGX SSE Client

A simple SSE (Server Sent Events) client for Angular applications to replace the use of EventSource.

This library uses the HttpClient to make the stream request and uses Observable to receive data from server. That way, all requests can be intercepted correctly with HttpInterceptor. It is also possible to decide which request will be made, GET or POST for example, and send other options as in other HttpClient requests.

Basic Usage

Inject the SseClient service to your component and execute the stream method, passing the url string to connect with. Here's a basic example:

import { Component, OnInit } from '@angular/core';
import { SseClient } from 'ngx-sse-client';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
})
export class AppComponent implements OnInit {
  constructor(private sseClient: SseClient) {
    const headers = new HttpHeaders().set('Authorization', `Basic YWRtaW46YWRtaW4=`);

    this.sseClient.stream('/subscribe', { keepAlive: true, reconnectionDelay: 1_000, responseType: 'event' }, { headers }, 'POST').subscribe((event) => {
      if (event.type === 'error') {
        const errorEvent = event as ErrorEvent;
        console.error(errorEvent.error, errorEvent.message);
      } else {
        const messageEvent = event as MessageEvent;
        console.info(`SSE request with type "${messageEvent.type}" and data "${messageEvent.data}"`);
      }
    });
  }
}

stream parameters

Here's a list of possible parameters for the stream method:

#namedescriptionmandatory
1urlthe endpoint URL*
2optionsan object of SseOption
3requestOptionsthe HTTP options to send with the request
4methodthe HTTP method, default is GET

SseOption object

The SseOption is an object with specific options for the SseClient service. Bellow there's the list of possible options:

namedescriptiondefault
keepAlivetrue to reconnect after the request is completedtrue
reconnectionDelaydefines a delay before reconnecting3 seconds
responseTyperequest response type, event or textevent

keepAlive

When set to true, will automatically reconnect when the request is closed by timeout or completed. In this case, to close the connection is necessary to unsubscribe manually.

reconnectionDelay

Defines a delay before reconnecting with the server. This is only useful when keepAlive is true.

responseType

Defines the response type to be cast from the server to client.

event

A MessageEvent will be returned with the message sent from the server - the type will obey the one of the message.

Otherwise in case of errors, an ErrorEvent with type error will be returned

For example:

this.sseClient.stream('/subscribe').subscribe((event) => {
  if (event.type === 'error') {
    const errorEvent = event as ErrorEvent;
    console.error(errorEvent.error, errorEvent.message);
  } else {
    const messageEvent = event as MessageEvent;
    console.info(`SSE request with type "${messageEvent.type}" and data "${messageEvent.data}"`);
  }
});
text

In this case, only the message data will be returned. For example:

this.sseClient.stream('/subscribe', { responseType: 'text' }).subscribe((data) => console.log(data));

:warning: It is important to know that, if the response type is set to text, no errors will be returned, only the data from successful requests.

CHANGELOG

19.0.0

:warning: Official minimum Angular version support changed to 19.1.3!

18.0.0

:warning: Official minimum Angular version support changed to 18.1.2!

17.0.1

  • fixed warning @types/node version, changed to ^18.0.0.
  • fixed the issue when using multiple concurrent streams.

17.0.0

:warning: Official minimum Angular version support changed to 17.3.11!

16.0.0

:warning: Official minimum Angular version support changed to 16.2.12!

15.0.0

:warning: Official minimum Angular version support changed to 15.2.10!

14.0.0

:warning: Official minimum Angular version support changed to 14.3.0!

13.0.0

:warning: Official minimum Angular version support changed to 13.4.0!

:information_source: Change of nomenclature to be consistent with the Angular version. Version 13.x.x of ngx-sse-client is compatible with v13 of Angular, and so on.

3.1.0

  • handle optional whitespace in parseChunkLine.
  • new repository marcospds/ngx-sse-client.

3.0.0

:warning: Official minimum Angular version support changed to 12.2.0!

:star: Improvements
  • added support to the context attribute on HttpRequest options.

2.1.1

:beetle: Bug fixes
  • reset progress to zero when recovering from a previous error.

2.1.0

:beetle: Bug fixes
  • unsubscribe the stream request if a server error occurs.
:star: Improvements
  • added the status and statusText attributes to the ErrorEvent, these will hold details from server errors;
  • changed responseType default to event;
  • changed reconnectDelay default to 3 seconds.

Please, feel free to send your contributions. :)

Keywords

FAQs

Package last updated on 25 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc