Skip to content
This repository has been archived by the owner on Nov 26, 2023. It is now read-only.

Commit

Permalink
refac constant for actions
Browse files Browse the repository at this point in the history
  • Loading branch information
Петрович Павел authored and themafia98 committed Mar 3, 2021
1 parent b0a30e3 commit 1a5e173
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 28 deletions.
8 changes: 8 additions & 0 deletions client/src/Modules/ContactModule/Chat/Chat.constant.js
@@ -0,0 +1,8 @@
export const CHAT_EVENTS = {
UPDATE_FAKE_ROOM_EVENT: 'updateFakeRoom',
UPDATE_ROOMS_EVENT: 'updateChatsRooms',
CONNECTION: 'connection',
CHAT_ADD_MESSAGE_EVENT: 'msg',
HANDLE_ERROR_EVENT: 'error',
ACTIVATE_CHAT_ROOM_EVENT: 'onChatRoomActive',
};
13 changes: 7 additions & 6 deletions client/src/Modules/ContactModule/Chat/Chat.jsx
Expand Up @@ -20,6 +20,7 @@ import modelsContext from 'Models/context';
import { compose } from 'redux';
import { withClientDb } from 'Models/ClientSideDatabase';
import { openTab } from 'Redux/actions/routerActions/middleware';
import { CHAT_EVENTS } from './Chat.constant';

class Chat extends PureComponent {
state = {
Expand Down Expand Up @@ -54,11 +55,11 @@ class Chat extends PureComponent {
this.chat = new ChatModel(webSocket);

this.chat.useDefaultEvents();
this.chat.getSocket().on('updateChatsRooms', onUpdateRoom);
this.chat.getSocket().on('connection', this.connection);
this.chat.getSocket().on('updateFakeRoom', this.updateFakeRoom);
this.chat.getSocket().on('msg', this.addMsg);
this.chat.getSocket().on('error', this.errorConnection);
this.chat.getSocket().on(CHAT_EVENTS.UPDATE_ROOMS_EVENT, onUpdateRoom);
this.chat.getSocket().on(CHAT_EVENTS.CONNECTION, this.connection);
this.chat.getSocket().on(CHAT_EVENTS.UPDATE_FAKE_ROOM_EVENT, this.updateFakeRoom);
this.chat.getSocket().on(CHAT_EVENTS.CHAT_ADD_MESSAGE_EVENT, this.addMsg);
this.chat.getSocket().on(CHAT_EVENTS.HANDLE_ERROR_EVENT, this.errorConnection);
};

componentWillUnmount = () => {
Expand Down Expand Up @@ -257,7 +258,7 @@ class Chat extends PureComponent {
if (chatToken !== token || !token) {
onLoadingDataByToken(token, listdata, 'chat', false);
this.chat.getSocket().emit('onChatRoomActive', { token, displayName });
this.chat.getSocket().emit(CHAT_EVENTS.ACTIVATE_CHAT_ROOM_EVENT, { token, displayName });
} else if (!token) message.warning('Чат комната не найдена либо требуется обновить систему.');
};
Expand Down
13 changes: 12 additions & 1 deletion server/src/Models/Chat/Chat.constant.ts
@@ -1,3 +1,14 @@
export const PROCESS_ACTIONS = {
CHAT_EMIT_SOCKET_ACTION: 'emitSocket',
CHAT_PROCESS_MESSAGE_ACTION: 'CHAT_PROCESS_MESSAGE',
};

export const PROCESS_CHAT_EVENTS = {
INITIAL_FAKE_ROOM: 'initFakeRoom',
UPDATE_FAKE_ROOM_EVENT: 'updateFakeRoom',
UPDATE_ROOMS_EVENT: 'updateChatsRooms',
CONNECTION_EVENT: 'connection',
CHAT_MESSAGE_EVENT: 'newMessage',
HANDLE_ERROR_EVENT: 'error',
DISCONNECT_EVENT: 'disconnect',
ACTIVATE_CHAT_ROOM_EVENT: 'onChatRoomActive',
};
6 changes: 3 additions & 3 deletions server/src/Models/Chat/Chat.events.ts
Expand Up @@ -24,7 +24,7 @@ export const newMessageEvent = (socket: Socket) => async (msgObj: ChatMessage) =
console.log('tokenRoom:', tokenRoom);

(process as any).send({
action: PROCESS_ACTIONS.CHAT_EMIT_SOCKET_ACTION,
action: PROCESS_ACTIONS.CHAT_PROCESS_MESSAGE_ACTION,
payload: {
event: 'msg',
to: tokenRoom,
Expand All @@ -33,7 +33,7 @@ export const newMessageEvent = (socket: Socket) => async (msgObj: ChatMessage) =
});
} else {
(process as any).send({
action: PROCESS_ACTIONS.CHAT_EMIT_SOCKET_ACTION,
action: PROCESS_ACTIONS.CHAT_PROCESS_MESSAGE_ACTION,
payload: {
event: 'msg',
to: tokenRoom,
Expand Down Expand Up @@ -71,7 +71,7 @@ export const initChatRoomEvent = (socket: Socket) => ({ token: tokenRoom = '' })
socket.join(tokenRoom);

(process as any).send({
action: PROCESS_ACTIONS.CHAT_EMIT_SOCKET_ACTION,
action: PROCESS_ACTIONS.CHAT_PROCESS_MESSAGE_ACTION,
payload: {
event: 'joinMsg',
to: tokenRoom,
Expand Down
24 changes: 10 additions & 14 deletions server/src/Models/Chat/Chat.ts
Expand Up @@ -4,7 +4,7 @@ import { ChatModel } from '../../Utils/Interfaces/Interfaces.global';
import WebSocketWorker from '../WebSocketWorker';
import { initFakeRoomEvent, newMessageEvent, workerDisconnect } from './Chat.events';
import { Payload } from '../../Utils/Types/types.global';
import { PROCESS_ACTIONS } from './Chat.constant';
import { PROCESS_ACTIONS, PROCESS_CHAT_EVENTS } from './Chat.constant';

class Chat implements ChatModel {
private _ws: WebSocketWorker;
Expand All @@ -23,7 +23,7 @@ class Chat implements ChatModel {
const { action = '', payload = {} } = data;

switch (action) {
case PROCESS_ACTIONS.CHAT_EMIT_SOCKET_ACTION: {
case PROCESS_ACTIONS.CHAT_PROCESS_MESSAGE_ACTION:
const { event = '', data = {}, to = '', socket = null } = payload as Record<string, Payload>;
const worker = this.ws.getWorker();

Expand All @@ -39,7 +39,6 @@ class Chat implements ChatModel {

worker.emit(event as string, data);
break;
}

default: {
console.log(action);
Expand All @@ -54,9 +53,9 @@ class Chat implements ChatModel {
private registerEventsListeners(socket: Socket): void {
socket.emit('connection', true);

socket.on('newMessage', newMessageEvent(socket));
socket.on('initFakeRoom', initFakeRoomEvent(socket));
socket.on('onChatRoomActive', initFakeRoomEvent(socket));
socket.on(PROCESS_CHAT_EVENTS.CHAT_MESSAGE_EVENT, newMessageEvent(socket));
socket.on(PROCESS_CHAT_EVENTS.INITIAL_FAKE_ROOM, initFakeRoomEvent(socket));
socket.on(PROCESS_CHAT_EVENTS.ACTIVATE_CHAT_ROOM_EVENT, initFakeRoomEvent(socket));
process.on('message', this.processMessageEvent.bind(this));
}

Expand All @@ -66,17 +65,14 @@ class Chat implements ChatModel {
throw new Error('Worker in Chat not found');
}

worker.on('connection', this.registerEventsListeners);
worker.on('disconnect', workerDisconnect);
worker.on(PROCESS_CHAT_EVENTS.CONNECTION_EVENT, this.registerEventsListeners.bind(this));
worker.on(PROCESS_CHAT_EVENTS.DISCONNECT_EVENT, workerDisconnect.bind(this));
}

public destroy(socket: Socket): void {
const worker = this.ws.getWorker();
socket.off('newMessage', newMessageEvent(socket));
socket.off('initFakeRoom', initFakeRoomEvent(socket));
socket.off('onChatRoomActive', initFakeRoomEvent(socket));
worker.off('disconnect', workerDisconnect);
process.off('message', this.processMessageEvent.bind(this));
socket.off(PROCESS_CHAT_EVENTS.CHAT_MESSAGE_EVENT, newMessageEvent(socket));
socket.off(PROCESS_CHAT_EVENTS.INITIAL_FAKE_ROOM, initFakeRoomEvent(socket));
socket.off(PROCESS_CHAT_EVENTS.ACTIVATE_CHAT_ROOM_EVENT, initFakeRoomEvent(socket));
}
}

Expand Down
7 changes: 4 additions & 3 deletions server/src/Models/Chat/Chat.utils.ts
Expand Up @@ -2,6 +2,7 @@ import { Socket } from 'socket.io';
import { QueryParams } from '../../Utils/Interfaces/Interfaces.global';
import { ParserResult } from '../../Utils/Types/types.global';
import ActionApi from '../Action';
import { PROCESS_ACTIONS, PROCESS_CHAT_EVENTS } from './Chat.constant';

export const createRealRoom = async (
fakeMsg: Record<string, string | object>,
Expand All @@ -23,15 +24,15 @@ export const updateFakeRoom = (socket: Socket) => (result: ParserResult, fakeMsg
const response = { room: result, msg: fakeMsg };

(process as any).send({
action: 'emitSocket',
action: PROCESS_ACTIONS.CHAT_PROCESS_MESSAGE_ACTION,
payload: {
event: 'updateFakeRoom',
event: PROCESS_CHAT_EVENTS.UPDATE_FAKE_ROOM_EVENT,
to: tokenRoom,
data: response,
},
});

socket.broadcast.emit('updateChatsRooms', {
socket.broadcast.emit(PROCESS_CHAT_EVENTS.UPDATE_ROOMS_EVENT, {
...response,
fullUpdate: true,
activeModule: 'chat',
Expand Down
4 changes: 3 additions & 1 deletion server/src/Models/Process/ProcessRouter.ts
Expand Up @@ -33,10 +33,12 @@ class ProcessRouter {
console.error(err);
} else {
console.error(err);
console.log('exit error, uptime:', process.uptime());
console.log('uncaughtException. exit error, uptime:', process.uptime());
process.exit(1);
}
});

process.on('exit', (code) => console.warn(`Exit with code ${code}`));
}

private handleWorkerError(err: Error) {
Expand Down

0 comments on commit 1a5e173

Please sign in to comment.