Last active
December 10, 2015 20:48
-
-
Save Trindaz/4490219 to your computer and use it in GitHub Desktop.
evented it tests (broken)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var dgram = require('dgram'); | |
var client_address = "0.0.0.0" | |
var client_port = 9002; | |
var server_address = "0.0.0.0" | |
var server_port = 9001 | |
server_socket = dgram.createSocket('udp4'); | |
server_socket.on('listening', function() { console.log("Server is listening"); }); | |
server_socket.bind(server_port); | |
function sendMessageServerToClient(message){ | |
var pBuf = new Buffer(message); | |
server_socket.send(pBuf, 0, pBuf.length, client_port, client_address, function(err, bytes) { if(err){ throw err } }); | |
} | |
server_socket.on('message', function(msg, rinfo) { | |
console.log("Server received message from client: " + msg.toString()); | |
//acknowledge reciept of message | |
sendMessageServerToClient("Message Received"); | |
/* | |
Do lots more work | |
*/ | |
//sent client some more messages after the work has completed | |
setTimeout( | |
function(){ | |
sendMessageServerToClient("More results from your request"); | |
}, | |
3000 | |
) | |
}); | |
client_socket = dgram.createSocket('udp4'); | |
client_socket.on('listening', function() { console.log("Client is listening"); }); | |
client_socket.bind(client_port); | |
function sendMessageClientToServer(message, callback){ | |
var pBuf = new Buffer(message); | |
client_socket.send(pBuf, 0, pBuf.length, server_port, server_address, function(err, bytes) { | |
callback(err); | |
}); | |
} | |
var handleMessageFromServer; | |
client_socket.on('message', function(msg, rinfo){ | |
console.log("Client received message from server: " + msg.toString()); | |
handleMessageFromServer(msg); | |
}); | |
//conduct a test | |
describe("Client handles messages from server", function(){ | |
var step1 = function(msg){ | |
handleMessageFromServer = step2; | |
it("should first receive an ack from server", function(done){ | |
if(msg.toString()!="Message Received"){ | |
done(new Error("Client didn't receive correct ack message. I got " + msg.toString())); | |
}else{ | |
done(); | |
} | |
}); | |
} | |
var step2 = function(msg){ | |
handleMessageFromServer = null; | |
it("should then receive updates from server", function(done){ | |
if(msg.toString()!="More results from your request"){ | |
done(new Error("Client didn't receive correct results message. I got " + msg.toString())); | |
}else{ | |
done(); | |
} | |
}) | |
} | |
handleMessageFromServer = step1; | |
it("should send message to server", function(done){ | |
sendMessageClientToServer("Hello", function(err){ | |
done(err) | |
}); | |
}) | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment