我一直在试图测试一个web套接字连接。有几个很好的教程在那里,形容它害得我这种伪代码只是为了看看我是否可以测试数据上的WebSockets发送:https服务器的摩卡网络套接字测试
var socketURL= 'https://localhost:9002';
var io = require('socket.io-client');
options={
transports: ['websocket'],
'force new connection': true
};
describe("Connection test", function(){
it('to check if data is received',function(done){
var client = io.connect(socketURL,options);
client.on('connect',function(){
console.log("in connect");
client.emit('data',{data:10});
client.on('result',function(data){
console.log(data);
data.should.equal(10);
done();
});
});
});
我已经设置了服务器像这样,在该选项决定密钥和证书阅读
var app = express();
var httpsServer = https.createServer(OPTIONS, app);
httpsServer.listen(9002);
var io = require('socket.io').listen(httpsServer);
io.on('connection', function(socket){
socket.on('data', function(data){
socket.emit('result',data);
})
})
的问题是client.on(“连接”)不会被调用,我总不能打印到控制台看到这一点。发生的所有情况都是超时错误:“超过2000ms的超时,确保在此测试中调用done()回调函数。” 我已经移动了done(),它不会产生差异。我认为问题在于我遵循的教程使用http服务器,而我使用的是https服务器,我认为这可能需要添加方法来连接,但我对摩卡很陌生,所以我不会知道他们可能是什么。 任何帮助,将不胜感激