ergo-chat
TypeScript icon, indicating that this package has built-in type declarations

1.3.7 • Public • Published

Ergo-Chat

Getting Started

To use this package, run npm i ergo-chat. This package exports a fully typed class SocketConnection which supports basic chat functionality from the client using socket.io-client.

Supported Event Firing

The class has three methods notifyRead, notifyTyping, and sendMessage which fire the read, typing and chat message socket.io events respectively. sendMessage takes a string as an argument which is the message to be sent. The following are the data sent in these events to the socket server.

this.socket.emit('chat message', {
      from: this.socketDetails.userId,
      to: this.socketDetails.otherId,
      fromAlias: this.socketDetails.userAlias,
      toAlias: this.socketDetails.otherAlias,
      messageBody: messageBody,
      roomId: this.socketDetails.roomId,
      read: false,
      readTime: -1,
      sessionId: this.socketDetails.sessionId,
      bookingId: this.socketDetails.bookingId,
    });
this.socket.emit('read', {
        time: Date.now(),
        roomId: this.socketDetails.roomId,
        from: this.socketDetails.userId,
        fromAlias: this.socketDetails.userAlias,
      });
this.socket.emit('typing', {
      roomId: this.socketDetails.roomId,
      from: this.socketDetails.userId,
      fromAlias: this.socketDetails.userAlias,
    });

Finally, a joinRoom event is fired on connect

socket.emit('joinRoom', { roomId: this.socketDetails.roomId });

Supported Event Handling

To support handling events coming from the socket server, rxjs Subjects were used. In particular, roomHistorySubject listens for roomHistory events, readSubject listens for otherRead events, typingSubject Listens for otherTyping events and messageSubject listens for chat message events. In order to subscribe to these events and handle the data, use the following pattern.

const socket = new SocketConnection(...)

socket.getMessageSubject().subscribe((data)=>{
    //handle the event using the data from the socket server
    //example, add the chat message to the DOM
})

Readme

Keywords

none

Package Sidebar

Install

npm i ergo-chat

Weekly Downloads

1

Version

1.3.7

License

ISC

Unpacked Size

24.1 kB

Total Files

20

Last publish

Collaborators

  • devakavillvay