@hyperflake/socket-broker
Version:
47 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SocketClient = void 0;
const socket_io_client_1 = require("socket.io-client");
const utils_1 = require("../utils");
const defaultSocketClientOptions = {
withCredentials: true,
};
class SocketClient {
constructor(uri, options = defaultSocketClientOptions) {
const { groupId, query, ...rest } = options;
const socketQuery = query || {};
if (groupId) {
socketQuery.groupId = groupId;
}
this.socket = (0, socket_io_client_1.io)(uri, { query: socketQuery, ...rest });
this.init();
}
get id() {
return this.socket.id;
}
init() {
this.socket.on('connect', () => {
utils_1.logger.log(`Socket client connected to broker - [SocketId]:${this.socket.id}.`);
});
this.socket.on('connect_error', (err) => {
utils_1.logger.error(`Socket client failed to connect.`, err.message);
});
this.socket.on('disconnect', () => {
utils_1.logger.warn(`Socket client disconnected.`);
});
}
on(event, listener) {
this.socket.on(event, listener);
}
emit(event, ...args) {
this.socket.emit(event, ...args);
}
disconnect() {
this.socket.disconnect();
}
getSocket() {
return this.socket;
}
}
exports.SocketClient = SocketClient;
//# sourceMappingURL=socket-client.js.map