Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Apr 25, 2025. It is now read-only.
/chat_servicePublic archive

Commit87765c5

Browse files
committed
__ADD__ adding primery client and secondary client for redis
1 parent6b84778 commit87765c5

File tree

9 files changed

+82
-53
lines changed

9 files changed

+82
-53
lines changed

‎lib/config/config.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ const config = {
2323
data:{},
2424
error_code:0
2525
},
26+
REDIS_PRIMERY_DB:process.env.REDIS_PRIMERY_DB,
27+
REDIS_SECONDARY_DB:process.env.REDIS_SECONDARY_DB,
2628
TOPIC:process.env.TOPIC,
2729
REDIS_HOST:process.env.REDIS_HOST,
2830
JWT_SECRET:process.env.JWT_SECRET,

‎lib/controllers/chat_controller.js‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ exports.newMessage = async (io, socket, data, callback) => {
4141
constmessage_id=mongoose.Types.ObjectId();
4242
constsender_id=awaitchat_dao.getSenderIdBySocket(room_id,socket.id);
4343
constmsg={
44+
incremental_id:1,
4445
text,
4546
room_id,
4647
timestamp:newDate().getTime(),
@@ -58,9 +59,9 @@ exports.newMessage = async (io, socket, data, callback) => {
5859
throwe;
5960
}else{
6061
kafka_log(result);
61-
callback(Object.assign({},config.RESPONSE,{
62-
message:'message has been sent successfully'
63-
}));
62+
//callback(Object.assign({}, config.RESPONSE, {
63+
//message: 'message has been sent successfully'
64+
//}));
6465
//TODO: brodcast in the future
6566
/**
6667
*@memberof socket_handler - this is a backend event

‎lib/controllers/room_controller.js‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,14 @@ exports.createRoom = async (io, socket, data, callback) => {
110110

111111
// const created = await room_dao.saveRoom(room_id, sockets);
112112
kafka_log('........................\n'+sockets+'\n.............................');
113-
constkeyedMessage=newkm('readMessage',JSON.stringify({
113+
constkeyedMessage=newkm('newMessage',JSON.stringify({
114+
incremental_id:1,
114115
text:'room_created',
115116
room_id:_id,
116117
timestamp:newDate().getTime(),
117118
moment:moment().format('jYYYY/jMM/jDD HH:mm:ss'),
118119
sender_id:creator_id,
119-
message_id:mongoose.Types.ObjectId()
120+
message_id:mongoose.Types.ObjectId()
120121
}));
121122
producer.send([Object.assign(config.PAYLOAD,{
122123
messages:[keyedMessage]

‎lib/dao/chat_dao.js‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
constwinston=require('../utils/logger');
22
constredis_log=require('debug')('goftare:redis');
3-
const{ client}=require('../utils/redis');
3+
const{
4+
Pclient
5+
}=require('../utils/redis');
46

57

68
/**
@@ -11,7 +13,7 @@ const { client } = require('../utils/redis');
1113

1214
exports.getSenderIdBySocket=async(room_id,socket_id)=>{
1315
try{
14-
constsender_id=awaitclient.hgetAsync(room_id,socket_id);
16+
constsender_id=awaitPclient.hgetAsync(room_id,socket_id);
1517
redis_log(sender_id);
1618
returnPromise.resolve(sender_id);
1719
}catch(e){

‎lib/dao/room_dao.js‎

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
constwinston=require('../utils/logger');
1+
constwinston=require('../utils/logger');
22
constredis_log=require('debug')('goftare:redis');
3-
const{client}=require('../utils/redis');
3+
const{
4+
Pclient
5+
}=require('../utils/redis');
46

57

68
/**
@@ -14,21 +16,21 @@ const {client} = require('../utils/redis');
1416
*@throws {Error} redis error
1517
*/
1618

17-
exports.joinSocketToRoom=async(room_id,socket_id,joined_id)=>{
18-
try{
19-
constjoinedToRoom=awaitclient.hmsetAsync(room_id,[socket_id,joined_id]);
20-
constjoinedToUser=awaitclient.hmsetAsync(joined_id,[socket_id,room_id]);
21-
if(joinedToRoom&&joinedToUser){
22-
constmembers=awaitclient.hlenAsync(room_id);
23-
if(members!==0){
24-
constroomMembers=awaitclient.hvalsAsync(room_id);
19+
exports.joinSocketToRoom=async(room_id,socket_id,joined_id)=>{
20+
try{
21+
constjoinedToRoom=awaitPclient.hmsetAsync(room_id,[socket_id,joined_id]);
22+
constjoinedToUser=awaitPclient.hmsetAsync(joined_id,[socket_id,room_id]);
23+
if(joinedToRoom&&joinedToUser){
24+
constmembers=awaitPclient.hlenAsync(room_id);
25+
if(members!==0){
26+
constroomMembers=awaitPclient.hvalsAsync(room_id);
2527
redis_log(roomMembers);
2628
returnPromise.resolve(roomMembers);
27-
}else
29+
}else
2830
returnPromise.resolve(joinedToRoom);
29-
}else
31+
}else
3032
winston.error(`error in saving socket in redis -${newDate()}`);
31-
}catch(e){
33+
}catch(e){
3234
winston.error(`error in join socket to the room -${e.status||500} -${e.message} -${e.stack} -${newDate()}`);
3335
throwe;
3436
}
@@ -39,32 +41,35 @@ exports.joinSocketToRoom = async (room_id, socket_id, joined_id)=> {
3941
* removeSocketFromRoom
4042
*/
4143

42-
exports.removeSocketFromRoom=async(rooms,socket_id)=>{
43-
try{
44-
constsender_id=awaitclient.hgetAsync(rooms[0],socket_id);
44+
exports.removeSocketFromRoom=async(rooms,socket_id)=>{
45+
try{
46+
constsender_id=awaitPclient.hgetAsync(rooms[0],socket_id);
4547
redis_log(rooms);
4648
for(constroomofrooms){
47-
constremovedSocket=awaitclient.hdelAsync(room,socket_id);
49+
constremovedSocket=awaitPclient.hdelAsync(room,socket_id);
4850
redis_log(removedSocket);
4951
}
50-
returnPromise.resolve({sender_id:sender_id,rooms:rooms});
52+
returnPromise.resolve({
53+
sender_id:sender_id,
54+
rooms:rooms
55+
});
5156

52-
}catch(e){
57+
}catch(e){
5358
winston.error(`error in -${e.status||500} -${e.message} -${e.stack} -${newDate()}`);
5459
throwe;
5560
}
5661
};
5762

5863

59-
exports.findSocketsById=async(id,room_id)=>{
60-
try{
61-
consthashmap=awaitclient.hgetallAsync(room_id);
64+
exports.findSocketsById=async(id,room_id)=>{
65+
try{
66+
consthashmap=awaitPclient.hgetallAsync(room_id);
6267
constsockets=Object.keys(hashmap).filter(key=>hashmap[key]===id);
6368
redis_log(sockets);
64-
69+
6570
returnPromise.resolve(sockets);
6671

67-
}catch(e){
72+
}catch(e){
6873
throwe;
6974
}
7075
};

‎lib/dao/start_dao.js‎

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
constwinston=require('../utils/logger');
1+
constwinston=require('../utils/logger');
22
constredis_log=require('debug')('goftare:redis');
3-
const{client}=require('../utils/redis');
3+
const{
4+
Pclient
5+
}=require('../utils/redis');
46

5-
exports.flushDB=async()=>{
6-
try{
7-
constflushed=awaitclient.flushdbAsync();
7+
exports.flushDB=async()=>{
8+
try{
9+
constflushed=awaitPclient.flushdb();
810
redis_log('db flushed succesfully');
911
returnflushed;
10-
}catch(e){
12+
}catch(e){
1113
winston.error('db flush has error');
12-
}
14+
}
1315
};

‎lib/dao/user_dao.js‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
constwinston=require('../utils/logger');
22
constredis_log=require('debug')('goftare:redis');
3-
const{ client}=require('../utils/redis');
3+
const{
4+
Pclient
5+
}=require('../utils/redis');
46

57

68
exports.getUserSocketById=async(user_id)=>{
79
try{
8-
constuserSockets=awaitclient.hgetallAsync(user_id);
10+
constuserSockets=awaitPclient.hgetallAsync(user_id);
911
redis_log(userSockets);
1012
returnPromise.resolve(Object.keys(userSockets));
1113
}catch(e){

‎lib/utils/redis.js‎

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
11
constredis_log=require('debug')('goftare:redis');
2+
constconfig=require('../config/config');
23
constredis=require('redis');
34
constwinston=require('../utils/logger');
45
constbluebird=require('bluebird');
56
bluebird.promisifyAll(redis.RedisClient.prototype);
67
bluebird.promisifyAll(redis.Multi.prototype);
7-
constclient=redis.createClient();
8+
constPclient=redis.createClient([{db:config.REDIS_PRIMERY_DB}]);
9+
constSclient=redis.createClient([{db:config.REDIS_SECONDARY_DB}]);
810

9-
client.on('ready',()=>{
10-
redis_log('redis connection is ready');
11+
Pclient.on('ready',()=>{
12+
redis_log('primeryredis connection is ready');
1113
});
1214

13-
client.on('connect',()=>{
14-
redis_log('redis connection is established');
15+
Pclient.on('connect',()=>{
16+
redis_log('primeryredis connection is established');
1517
});
1618

17-
client.on('error',(error)=>{
18-
winston.error(`error in redis connection -${error.status||500} -${error.message} -${error.stack} -${newDate()}`);
19+
Pclient.on('error',(e)=>{
20+
winston.error(`error inprimeryredis connection -${e.status||500} -${e.message} -${e.stack} -${newDate()}`);
1921
});
2022

2123

22-
exports.client=client;
24+
Sclient.on('ready',()=>{
25+
redis_log('secondary redis connection is ready');
26+
});
27+
28+
Sclient.on('connect',()=>{
29+
redis_log('secondary redis connection is established');
30+
});
31+
32+
Sclient.on('error',(e)=>{
33+
winston.error(`error in secondary redis connection -${e.status||500} -${e.message} -${e.stack} -${newDate()}`);
34+
});
35+
36+
exports.Pclient=Pclient;

‎lib/utils/validator.js‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ const joi = require('joi');
22

33

44
exports.message=joi.object().keys({
5-
room_id:joi.string().required().min(23).max(25),
6-
text:joi.string().required(),
7-
time_stamp:joi.date().timestamp()
5+
room_id:joi.string().required().regex(/^[a-f\d]{24}$/i),
6+
text:joi.string().required(),
87
});
98

109
exports.joinRoom=joi.object().keys({
1110
room_id:joi.string().required().regex(/^[a-f\d]{24}$/i),
12-
joined_room:joi.string().required().regex(/^[a-f\d]{24}$/i)
11+
joined_id:joi.string().required().regex(/^[a-f\d]{24}$/i)
1312
});
1413

1514
exports.createRoom=joi.object().keys({
@@ -20,7 +19,8 @@ exports.createRoom = joi.object().keys({
2019

2120
exports.newMessage=joi.object().keys({
2221
text:joi.string().required(),
23-
room_id:joi.string().required().regex(/^[a-f\d]{24}$/i)
22+
room_id:joi.string().required().regex(/^[a-f\d]{24}$/i),
23+
time:joi.string()
2424
});
2525

2626
exports.isTyping=joi.object().keys({

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp