Skip to content

Instantly share code, notes, and snippets.

@Trindaz
Last active December 10, 2015 20:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Trindaz/4490219 to your computer and use it in GitHub Desktop.
Save Trindaz/4490219 to your computer and use it in GitHub Desktop.
evented it tests (broken)
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