Я пытаюсь найти способ передать от моего клиента инструкцию на сервер, который находится внутри объекта JSON.
Вот моя проблема, мой сервер получил мою первую инструкцию. Но моя вторая инструкция deleteFile находится внутри объекта json, и сервер никогда не получал эту вторую инструкцию.
Я хотел бы знать, возможно ли это, и делаю ли я это неправильно.
Я хочу сделать что-то вроде этого:
Клиент: Я посылаю «инструкцию» с моим var «message»
service.deleteFile = function (peer, filename, callback) {
if (! LoginService.connected || ! LoginService.socket) {
console.log("deleteFile : not connected to server");
callback("no server");
var message = {
message : 'deleteFile',
dest_list : _.flattenDeep([peer]),
filename : filename,
};
LoginService.socket.emit('instruction',(message));
console.log("service.deleteFile : " , message);
callback(200);
};
И на сервере app.js для «инструкции»:
socket.on('instruction', function(jsonMessage){
var dest_list = jsonMessage.dest_list;
var message = jsonMessage.message;
var filename = jsonMessage.filename;
var user_id = dest_list;
var instruction = {
message : message,
user_id : user_id,
filename : filename,
};
if (dest_list.length){
for (var i = 0; i < dest_list.length; i++) {
var user_id = dest_list[i].toLowerCase();
if (user_id in socket_clients){
var socketId = socket_clients[user_id].socketId;
socket.broadcast.to(socketId).emit('instruction', instruction);
console.log(instruction); //print "{message:'deleteFile', user_id: ['emitter'], filename: 'thegoodfile'}
}
else{
console.log("Error", user_id);
}
}
} else{
console.log("Error");
} });
Затем на сервере app.js для 'deleteFile' (эта инструкция находится внутри моего объекта JSON, отправленного из клиента):
socket.on('deleteFile', function(jsonMessage) {
console.log("Test message"); };
Я думаю, что мой сервер не понимает мою инструкцию 'deleteFile', но я не могу сказать ему, что это инструкция.
Скажите мне, если я пропустил некоторые данные.
Спасибо, если можете помочь.