2016-05-24 2 views
2

Я использую socket.io на моем сервере nodejs, и он отлично работает в среде dev. Однако, когда я развернуть его на сервере производства, он начал давать следующую ошибку:Ошибка Socket.io websocket ENOENT

Connection Error { [Error: websocket error] 
description: 
    { [Error: connect ENOENT] 
    code: 'ENOENT', 
    errno: 'ENOENT', 
    syscall: 'connect', 
    target: 
    { domain: null, 
    _events: [Object], 
    _maxListeners: 10, 
    _socket: null, 
    _ultron: null, 
    _closeReceived: false, 
    bytesReceived: 0, 
    readyState: 0, 
    supports: [Object], 
    extensions: {}, 
    _isServer: false, 
    url: 'ws://localhost:8888/socket.io/?EIO=3&transport=websocket', 
    protocolVersion: 13, 
    binaryType: 'buffer' } } } 

Мой код на стороне сервера является следующее:

var server = app.listen(8888); 
var io = require('socket.io').listen(server); 

var test_data_nsp = io.of('/test_data'); 
test_data_nsp.on('connection',function(socket){ 
    console.log('Connected: %s', socket.id); 
    socket.on('user_connected',function(username){ 
     console.log("user connected"); 
     socket.on('disconnect',function(){ 
      console.log('User Disconnected'); 
     }); 
}); 

И на стороне клиента код в Mocha является следующее:

var io = require('socket.io-client'); 
var socketTestURL = 'http://localhost:8888/test_data'; 
var options ={ 
    transports: ['websocket'], 
    'force new connection': true 
}; 


describe("Web Socket",function(){ 
    it('Should open a socket connection to send testdata to the user',function(done){ 
     var client_test_data = io.connect(socketTestURL, options); 
     client_test_data.on('connect', function(data){ 
     client_test_data.emit('user_connected',"test_user_name"); 
     done(); 
    }); 
}) 
}); 

Я не могу понять, что пошло не так. Любая помощь будет высоко оценена.

ТИА :)

ответ

0

Выпуск here.

Обходное решение заключается в том, чтобы добавить rejectUnauthorized: null вариант для socket.io-client.

Смежные вопросы