我一直在試圖測試一個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服務器,我認爲這可能需要添加方法來連接,但我對摩卡很陌生,所以我不會知道他們可能是什麼。 任何幫助,將不勝感激