Ich habe versucht, eine Web-Socket-Verbindung zu testen. Es gibt ein paar gute Tutorials gibt, die es beschreiben, die mir von Dummy-Code dieser Art führte nur zu sehen, wenn ich Daten testen können über WebSockets gesendet werden:Mocha-Web-Socket-Test für https-Server
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();
});
});
});
Ich habe den Server wie so eingerichtet, in dem die Optionen bestimmen den Schlüssel und cert
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);
})
})
das Problem ist zu lesen, dass die client.on (‚connect‘) nie aufgerufen wird, ich das durch nichts Ausdrucken an die Konsole sehen. Alles was passiert, ist ein Timeout-Fehler: "Timeout von 2000ms überschritten. Stellen Sie sicher, dass der done() Callback in diesem Test aufgerufen wird." Ich habe das getan() und es macht keinen Unterschied. Ich denke, das Problem ist, dass die Tutorials, die ich habe, einen http-Server verwenden, während ich einen https-Server verwende, und ich denke, dass dies zusätzliche Methoden erfordern, um eine Verbindung herzustellen, aber ich bin ziemlich neu für Mocha, also nicht weiß, was sie sein können. Jede Hilfe wäre willkommen