mirror of
https://github.com/darkwire/darkwire.io.git
synced 2025-07-18 18:54:52 +00:00
Creating some stability
This commit is contained in:
parent
e59bb2a1cf
commit
ebeab321e1
@ -52,14 +52,21 @@ export default class Darkwire {
|
||||
return importKeysPromises;
|
||||
}
|
||||
|
||||
sendMessage(message, messageType) {
|
||||
removeUser(data) {
|
||||
this._users = _.without(this._users, _.findWhere(this._users, {id: data.id}));
|
||||
return this._users;
|
||||
}
|
||||
|
||||
encodeMessage(message, messageType) {
|
||||
// Don't send unless other users exist
|
||||
console.log(this._users);
|
||||
if (this._users.length <= 1) return;
|
||||
return new Promise( (resolve, reject) => {
|
||||
if (this._users.length <= 1) {
|
||||
reject();
|
||||
return;
|
||||
};
|
||||
|
||||
// if there is a non-empty message and a socket connection
|
||||
if (message && this._connected) {
|
||||
$inputMessage.val('');
|
||||
$('#send-message-btn').removeClass('active');
|
||||
addChatMessage({
|
||||
username: username,
|
||||
@ -84,10 +91,10 @@ export default class Darkwire {
|
||||
signingKey = key;
|
||||
// Generate secretKey and encrypt with each user's public key
|
||||
let promises = [];
|
||||
_.each(this._users, function(user) {
|
||||
_.each(this._users, (user) => {
|
||||
// If not me
|
||||
if (user.username !== window.username) {
|
||||
let promise = new Promise(function(resolve, reject) {
|
||||
let promise = new Promise((res, rej) => {
|
||||
let thisUser = user;
|
||||
|
||||
let secretKeyStr;
|
||||
@ -110,7 +117,7 @@ export default class Darkwire {
|
||||
.then(function(encryptedSigningKey) {
|
||||
let encData = new Uint8Array(encryptedSigningKey);
|
||||
var str = this._cryptoUtil.convertArrayBufferViewToString(encData);
|
||||
resolve({
|
||||
res({
|
||||
id: thisUser.id,
|
||||
secretKey: secretKeyStr,
|
||||
encryptedSigningKey: str
|
||||
@ -136,7 +143,7 @@ export default class Darkwire {
|
||||
let msg = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(encryptedMessageData));
|
||||
let vct = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(vector));
|
||||
let sig = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(signature));
|
||||
socket.emit('new message', {
|
||||
resolve({
|
||||
message: msg,
|
||||
vector: vct,
|
||||
messageType: type,
|
||||
@ -145,6 +152,8 @@ export default class Darkwire {
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
decodeMessage(data) {
|
||||
|
@ -232,7 +232,12 @@ $(function() {
|
||||
// When the client hits ENTER on their keyboard and chat message input is focused
|
||||
if (event.which === 13 && $('.inputMessage').is(':focus')) {
|
||||
let message = cleanInput($inputMessage.val());
|
||||
darkwire.sendMessage(message, 'chat');
|
||||
darkwire.encodeMessage(message, 'chat').then( (message) => {
|
||||
$inputMessage.val('');
|
||||
socket.emit('new message', message);
|
||||
}).catch( (err) => {
|
||||
console.log(err);
|
||||
});
|
||||
socket.emit('stop typing');
|
||||
typing = false;
|
||||
}
|
||||
@ -309,7 +314,7 @@ $(function() {
|
||||
addParticipantsMessage(data);
|
||||
removeChatTyping(data);
|
||||
|
||||
users = _.without(users, _.findWhere(users, {id: data.id}));
|
||||
darkwire.removeUser(data);
|
||||
|
||||
renderParticipantsList();
|
||||
});
|
||||
@ -358,10 +363,14 @@ $(function() {
|
||||
}
|
||||
|
||||
$('#send-message-btn').click(function() {
|
||||
let message = $inputMessage.val();
|
||||
let message = cleanInput($inputMessage.val());
|
||||
// Prevent markup from being injected into the message
|
||||
message = cleanInput(message);
|
||||
darkwire.sendMessage(message, 'chat');
|
||||
darkwire.encodeMessage(message, 'chat').then( (message) => {
|
||||
$inputMessage.val('');
|
||||
socket.emit('new message', message);
|
||||
}).catch( (err) => {
|
||||
console.log(err);
|
||||
});
|
||||
socket.emit('stop typing');
|
||||
typing = false;
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user