1.3.7 • Published 2 years ago

ergo-chat v1.3.7

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

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
})
1.3.7

2 years ago

1.3.6

2 years ago

1.3.5

2 years ago

1.3.4

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.9

2 years ago

1.2.8

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago