var data = bar();
function bar() {
var result;
socket.emit('message', 'test');
socket.on('msg', function(message) {
result = message;
});
return result;
}
Here, the result value is getting undefined
. How to assign the value retrieved from the socket.on
function to result
variable and return?
This is my other end that receives the socket.io
message event.
var io = require('socket.io').listen(server);
io.sockets.on('connection', function(socket, username) {
socket.on('message', function(message) {
var result = 'test value'
socket.emit('msg', result);
});
});
Trying to return a object in acknowlegment.
io.sockets.on('connection', function (socket) {
socket.on('message', function(message, ackCallback) {
console.log("server received message", message);
var result = tools.execute(message);
console.log(typeof(result)); // result is returned a object
ackCallback(result);
});
});
P.S. I tried to pass a simple object
var result = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
ackCallback(result);
The result value is getting passed for this object.
tools.execute(message); is returning this object. Which is not getting passed through the ackCallback.
{ uuid: '155C75EA-CB23-4172-85EB-3E256A271D8D', name: '', type: 'Object3D', parent: null, children: [ { uuid: 'D778A19B-F935-4B06-8536-54494BC5F920', name: '', type: 'Mesh', parent: [Circular], children: [], up: [Object], position: [Object], rotation: [Object], quaternion: [Object], scale: [Object], matrix: [Object], matrixWorld: [Object], matrixAutoUpdate: true, matrixWorldNeedsUpdate: false, layers: [Object], visible: true, castShadow: false, receiveShadow: false, frustumCulled: true, renderOrder: 0, userData: {}, geometry: [Object], material: [Object], drawMode: 0 }, { uuid: '9FD1CACF-6A2B-4932-8FA2-B0A4AF618F8D', name: '', type: 'Mesh', parent: [Circular], children: [], up: [Object], position: [Object], rotation: [Object], quaternion: [Object], scale: [Object], matrix: [Object], matrixWorld: [Object], matrixAutoUpdate: true, matrixWorldNeedsUpdate: false, layers: [Object], visible: true, castShadow: true, receiveShadow: false, frustumCulled: true, renderOrder: 0, userData: {}, geometry: [Object], material: [Object], drawMode: 0 } ], up: { x: 0, y: 1, z: 0 }, position: { x: 0, y: 0, z: 0 }, rotation: { _x: 0, _y: 0, _z: 0, _order: 'XYZ', onChangeCallback: [Function: onRotationChange] }, quaternion: { _x: 0, _y: 0, _z: 0, _w: 1, onChangeCallback: [Function: onQuaternionChange] }, scale: { x: 1, y: 1, z: 1 }, matrix: { elements: Float32Array [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] }, matrixWorld: { elements: Float32Array [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ] }, matrixAutoUpdate: true, matrixWorldNeedsUpdate: false, layers: { mask: 1 }, visible: true, castShadow: false, receiveShadow: false, frustumCulled: true, renderOrder: 0, userData: {} }