1/* 本测试case,测试tcp的接口,接口返回值等,tcp server是公网tcp服务器:47.101.151.113 */ 2function ArrayToString(fileData){ 3 var dataString = ""; 4 for (var i = 0; i < fileData.length; i++) { 5 dataString += String.fromCharCode(fileData[i]); 6 } 7 8 return dataString; 9} 10 11console.log('tcp: testing tcp...'); 12// 测试 tcp 模块 13var tcp = require('tcp'); 14if(!(tcp && tcp.createClient)){ 15 throw new Error("tcp: [failed] require(\'tcp\')"); 16} 17 18console.log('tcp: [success] require(\'tcp\')'); 19 20var tcpSocket = tcp.createClient({ 21 host: '47.101.151.113', 22 port: 50020, 23 success: function() { 24 console.log('tcp: tcp client connect success'); 25 }, 26 fail: function() { 27 console.log('tcp: tcp client connect failed'); 28 } 29}); 30// 测试 tcpSocket 接口 31if(!tcpSocket || !tcpSocket.send || !tcpSocket.close || !tcpSocket.on || !tcpSocket.reconnect) { 32 throw new Error("tcp: [failed] tcp instance"); 33} 34 35// 测试接收数据 36var sendCnt = 0, recvCnt = 0; 37var defaultMessage = 'AMP tcp server reply'; 38tcpSocket.on('message', function(message) { 39 if(!message || typeof message !== 'object' || ArrayToString(message) !== defaultMessage) { 40 throw new Error("tcp: [failed] tcp receive message"); 41 } 42 recvCnt ++; 43 console.log('tcp: [debug] on message: ' + ArrayToString(message) + ', cnt: ' + recvCnt); 44 if(recvCnt >= 10){ 45 tcpSocket.close(); 46 console.log('tcp: [success] tcp.on(\'message\')'); 47 console.log('tcp: testing tcp success'); 48 } 49}); 50 51// 接收数据超时 52setTimeout(function() { 53 if(recvCnt != 10) { 54 console.log('tcp: [failed] tcp on message'); 55 } 56}, 12000); 57 58// 测试socket异常 59tcpSocket.on('error', function(err) { 60 console.log('tcp: tcp error ', err); 61 tcpSocket.close(); 62 throw new Error("tcp: [failed] tcp on error"); 63}); 64 65tcpSocket.on('disconnect', function() { 66 console.log('tcp: tcp disconnected'); 67}); 68 69// 测试发送数据 70var intervalHandle = setInterval(function() { 71 tcpSocket.send({ 72 message: "this is xxw, cnt: " + sendCnt, 73 success: function() { 74 sendCnt ++; 75 console.log("tcp: [debug] send success, cnt: ", sendCnt); 76 // 退出发送 77 if(sendCnt >= 10){ 78 clearInterval(intervalHandle); 79 console.log('tcp: [success] tcp.send()'); 80 } 81 }, 82 fail: function() { 83 console.log("tcp: send fail"); 84 throw new Error("tcp: [failed] tcp send fail"); 85 } 86 }); 87}, 1000);