Browse Source

multi-socket

hosting-provider
Evan Feenstra 4 years ago
parent
commit
e181fd8b26
  1. 13
      api/controllers/media.ts
  2. 8
      api/controllers/payment.ts
  3. 14
      api/utils/socket.ts
  4. 16
      dist/api/controllers/media.js
  5. 2
      dist/api/controllers/media.js.map
  6. 10
      dist/api/controllers/payment.js
  7. 2
      dist/api/controllers/payment.js.map
  8. 15
      dist/api/utils/socket.js
  9. 2
      dist/api/utils/socket.js.map

13
api/controllers/media.ts

@ -59,6 +59,7 @@ const sendAttachmentMessage = async (req, res) => {
file_name,
ttl,
price, // IF AMOUNT>0 THEN do NOT sign or send receipt
reply_uuid,
} = req.body
console.log('[send attachment]', req.body)
@ -91,7 +92,7 @@ const sendAttachmentMessage = async (req, res) => {
const remoteMessageContent = remote_text_map?JSON.stringify(remote_text_map) : remote_text
const uuid = short.generate()
const message = await models.Message.create({
const mm:{[k:string]:any} = {
chatId: chat.id,
uuid: uuid,
sender: owner.id,
@ -106,7 +107,9 @@ const sendAttachmentMessage = async (req, res) => {
date,
createdAt: date,
updatedAt: date
})
}
if(reply_uuid) mm.replyUuid=reply_uuid
const message = await models.Message.create(mm)
console.log('saved attachment msg from me',message.id)
@ -125,6 +128,7 @@ const sendAttachmentMessage = async (req, res) => {
mediaKey: media_key_map,
mediaType: mediaType,
}
if(reply_uuid) msg.replyUuid=reply_uuid
network.sendMessage({
chat: chat,
sender: owner,
@ -389,7 +393,7 @@ const receivePurchaseAccept = async (payload) => {
const receivePurchaseDeny = async (payload) => {
console.log('=> receivePurchaseDeny')
var date = new Date();
var date = new Date()
date.setMilliseconds(0)
const {owner, sender, chat, amount, mediaToken} = await helpers.parseReceiveParams(payload)
if(!owner || !sender || !chat) {
@ -420,7 +424,7 @@ const receiveAttachment = async (payload) => {
var date = new Date();
date.setMilliseconds(0)
const {owner, sender, chat, mediaToken, mediaKey, mediaType, content, msg_id, chat_type, sender_alias, msg_uuid} = await helpers.parseReceiveParams(payload)
const {owner, sender, chat, mediaToken, mediaKey, mediaType, content, msg_id, chat_type, sender_alias, msg_uuid, reply_uuid} = await helpers.parseReceiveParams(payload)
if(!owner || !sender || !chat) {
return console.log('=> no group chat!')
}
@ -438,6 +442,7 @@ const receiveAttachment = async (payload) => {
if(mediaToken) msg.mediaToken = mediaToken
if(mediaKey) msg.mediaKey = mediaKey
if(mediaType) msg.mediaType = mediaType
if(reply_uuid) msg.replyUuid = reply_uuid
const isTribe = chat_type===constants.chat_types.tribe
if(isTribe) {
msg.senderAlias = sender_alias

8
api/controllers/payment.ts

@ -23,6 +23,7 @@ const sendPayment = async (req, res) => {
dimensions,
remote_text_map,
contact_ids,
reply_uuid,
} = req.body
console.log('[send payment]', req.body)
@ -69,6 +70,7 @@ const sendPayment = async (req, res) => {
}
if(text) msg.messageContent = text
if(remote_text) msg.remoteMessageContent = remote_text
if(reply_uuid) msg.replyUuid=reply_uuid
if(muid){
const myMediaToken = await tokenFromTerms({
@ -92,6 +94,7 @@ const sendPayment = async (req, res) => {
msgToSend.mediaTerms = {muid,meta:{dim:dimensions}}
}
if(remote_text) msgToSend.content = remote_text
if(reply_uuid) msgToSend.replyUuid=reply_uuid
// if contact_ids, replace that in "chat" below
// if remote text map, put that in
@ -128,7 +131,7 @@ const receivePayment = async (payload) => {
var date = new Date();
date.setMilliseconds(0)
const {owner, sender, chat, amount, content, mediaType, mediaToken, chat_type, sender_alias, msg_uuid} = await helpers.parseReceiveParams(payload)
const {owner, sender, chat, amount, content, mediaType, mediaToken, chat_type, sender_alias, msg_uuid, reply_uuid} = await helpers.parseReceiveParams(payload)
if(!owner || !sender || !chat) {
return console.log('=> no group chat!')
}
@ -149,7 +152,8 @@ const receivePayment = async (payload) => {
if(mediaToken) msg.mediaToken = mediaToken
if(chat_type===constants.chat_types.tribe) {
msg.senderAlias = sender_alias
}
}
if(reply_uuid) msg.replyUuid = reply_uuid
const message = await models.Message.create(msg)

14
api/utils/socket.ts

@ -3,10 +3,11 @@ import * as WebSocket from 'ws'
// let connections = new Map()
// let connectionCounter = 0
let lastConn: any
// let lastConn: any
let server: any
const connect = (server) => {
server = new WebSocket.Server({ server })
server = new WebSocket.Server({ server, clientTracking:true })
console.log('=> [socket] connected to server')
@ -14,7 +15,7 @@ const connect = (server) => {
console.log('=> [socket] connection received')
// var id = connectionCounter++;
// connections.set(id, socket)
lastConn = socket
// lastConn = socket
})
}
@ -23,7 +24,12 @@ const send = (body) => {
// connections.forEach((socket, index) => {
// socket.send(body)
// })
if(lastConn) lastConn.send(body)
// if(lastConn) lastConn.send(body)
server.clients.forEach(c=>{
if(c && c.connected) {
c.send(body)
}
})
}
const sendJson = (object) => {

16
dist/api/controllers/media.js

@ -53,7 +53,8 @@ const sendAttachmentMessage = (req, res) => __awaiter(void 0, void 0, void 0, fu
// } catch(e) {
// return resUtils.failure(res, e.message)
// }
const { chat_id, contact_id, muid, text, remote_text, remote_text_map, media_key_map, media_type, amount, file_name, ttl, price, } = req.body;
const { chat_id, contact_id, muid, text, remote_text, remote_text_map, media_key_map, media_type, amount, file_name, ttl, price, // IF AMOUNT>0 THEN do NOT sign or send receipt
reply_uuid, } = req.body;
console.log('[send attachment]', req.body);
const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } });
const chat = yield helpers.findOrCreateChat({
@ -80,7 +81,7 @@ const sendAttachmentMessage = (req, res) => __awaiter(void 0, void 0, void 0, fu
const mediaType = media_type || '';
const remoteMessageContent = remote_text_map ? JSON.stringify(remote_text_map) : remote_text;
const uuid = short.generate();
const message = yield models_1.models.Message.create({
const mm = {
chatId: chat.id,
uuid: uuid,
sender: owner.id,
@ -95,7 +96,10 @@ const sendAttachmentMessage = (req, res) => __awaiter(void 0, void 0, void 0, fu
date,
createdAt: date,
updatedAt: date
});
};
if (reply_uuid)
mm.replyUuid = reply_uuid;
const message = yield models_1.models.Message.create(mm);
console.log('saved attachment msg from me', message.id);
saveMediaKeys(muid, media_key_map, chat.id, message.id, mediaType);
const mediaTerms = {
@ -111,6 +115,8 @@ const sendAttachmentMessage = (req, res) => __awaiter(void 0, void 0, void 0, fu
mediaKey: media_key_map,
mediaType: mediaType,
};
if (reply_uuid)
msg.replyUuid = reply_uuid;
network.sendMessage({
chat: chat,
sender: owner,
@ -384,7 +390,7 @@ const receiveAttachment = (payload) => __awaiter(void 0, void 0, void 0, functio
// console.log('received attachment', { payload })
var date = new Date();
date.setMilliseconds(0);
const { owner, sender, chat, mediaToken, mediaKey, mediaType, content, msg_id, chat_type, sender_alias, msg_uuid } = yield helpers.parseReceiveParams(payload);
const { owner, sender, chat, mediaToken, mediaKey, mediaType, content, msg_id, chat_type, sender_alias, msg_uuid, reply_uuid } = yield helpers.parseReceiveParams(payload);
if (!owner || !sender || !chat) {
return console.log('=> no group chat!');
}
@ -405,6 +411,8 @@ const receiveAttachment = (payload) => __awaiter(void 0, void 0, void 0, functio
msg.mediaKey = mediaKey;
if (mediaType)
msg.mediaType = mediaType;
if (reply_uuid)
msg.replyUuid = reply_uuid;
const isTribe = chat_type === constants.chat_types.tribe;
if (isTribe) {
msg.senderAlias = sender_alias;

2
dist/api/controllers/media.js.map

File diff suppressed because one or more lines are too long

10
dist/api/controllers/payment.js

@ -21,7 +21,7 @@ const constants = require("../../config/constants.json");
const network = require("../network");
const short = require("short-uuid");
const sendPayment = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
const { amount, chat_id, contact_id, destination_key, media_type, muid, text, remote_text, dimensions, remote_text_map, contact_ids, } = req.body;
const { amount, chat_id, contact_id, destination_key, media_type, muid, text, remote_text, dimensions, remote_text_map, contact_ids, reply_uuid, } = req.body;
console.log('[send payment]', req.body);
const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } });
if (destination_key && !contact_id && !chat_id) {
@ -63,6 +63,8 @@ const sendPayment = (req, res) => __awaiter(void 0, void 0, void 0, function* ()
msg.messageContent = text;
if (remote_text)
msg.remoteMessageContent = remote_text;
if (reply_uuid)
msg.replyUuid = reply_uuid;
if (muid) {
const myMediaToken = yield ldat_1.tokenFromTerms({
meta: { dim: dimensions }, host: '',
@ -84,6 +86,8 @@ const sendPayment = (req, res) => __awaiter(void 0, void 0, void 0, function* ()
}
if (remote_text)
msgToSend.content = remote_text;
if (reply_uuid)
msgToSend.replyUuid = reply_uuid;
// if contact_ids, replace that in "chat" below
// if remote text map, put that in
let theChat = chat;
@ -118,7 +122,7 @@ const receivePayment = (payload) => __awaiter(void 0, void 0, void 0, function*
console.log('received payment', { payload });
var date = new Date();
date.setMilliseconds(0);
const { owner, sender, chat, amount, content, mediaType, mediaToken, chat_type, sender_alias, msg_uuid } = yield helpers.parseReceiveParams(payload);
const { owner, sender, chat, amount, content, mediaType, mediaToken, chat_type, sender_alias, msg_uuid, reply_uuid } = yield helpers.parseReceiveParams(payload);
if (!owner || !sender || !chat) {
return console.log('=> no group chat!');
}
@ -142,6 +146,8 @@ const receivePayment = (payload) => __awaiter(void 0, void 0, void 0, function*
if (chat_type === constants.chat_types.tribe) {
msg.senderAlias = sender_alias;
}
if (reply_uuid)
msg.replyUuid = reply_uuid;
const message = yield models_1.models.Message.create(msg);
// console.log('saved message', message.dataValues)
socket.sendJson({

2
dist/api/controllers/payment.js.map

File diff suppressed because one or more lines are too long

15
dist/api/utils/socket.js

@ -3,15 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
const WebSocket = require("ws");
// let connections = new Map()
// let connectionCounter = 0
let lastConn;
// let lastConn: any
let server;
const connect = (server) => {
server = new WebSocket.Server({ server });
server = new WebSocket.Server({ server, clientTracking: true });
console.log('=> [socket] connected to server');
server.on('connection', socket => {
console.log('=> [socket] connection received');
// var id = connectionCounter++;
// connections.set(id, socket)
lastConn = socket;
// lastConn = socket
});
};
exports.connect = connect;
@ -19,8 +20,12 @@ const send = (body) => {
// connections.forEach((socket, index) => {
// socket.send(body)
// })
if (lastConn)
lastConn.send(body);
// if(lastConn) lastConn.send(body)
server.clients.forEach(c => {
if (c && c.connected) {
c.send(body);
}
});
};
exports.send = send;
const sendJson = (object) => {

2
dist/api/utils/socket.js.map

@ -1 +1 @@
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../api/utils/socket.ts"],"names":[],"mappings":";;AAAA,gCAA+B;AAE/B,8BAA8B;AAC9B,4BAA4B;AAE5B,IAAI,QAAa,CAAA;AAEjB,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE;IACzB,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAEzC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAE9C,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QAC9C,gCAAgC;QAChC,8BAA8B;QAC9B,QAAQ,GAAG,MAAM,CAAA;IACnB,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;AAcC,0BAAO;AAZT,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;IACpB,2CAA2C;IAC3C,sBAAsB;IACtB,KAAK;IACL,IAAG,QAAQ;QAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC,CAAA;AAQC,oBAAI;AANN,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;IAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9B,CAAC,CAAA;AAKC,4BAAQ"}
{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../api/utils/socket.ts"],"names":[],"mappings":";;AAAA,gCAA+B;AAE/B,8BAA8B;AAC9B,4BAA4B;AAE5B,oBAAoB;AACpB,IAAI,MAAW,CAAA;AAEf,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE;IACzB,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,EAAC,IAAI,EAAE,CAAC,CAAA;IAE9D,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IAE9C,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QAC9C,gCAAgC;QAChC,8BAA8B;QAC9B,oBAAoB;IACtB,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;AAmBC,0BAAO;AAjBT,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;IACpB,2CAA2C;IAC3C,sBAAsB;IACtB,KAAK;IACL,mCAAmC;IACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA,EAAE;QACxB,IAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;YACnB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACb;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAQC,oBAAI;AANN,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;IAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9B,CAAC,CAAA;AAKC,4BAAQ"}
Loading…
Cancel
Save