2015-11-05 2 views
-1

Я смотрел видео laracast о websockets (socket.io) и сам пробовал. На localhost он работает отлично, но когда я пытаюсь запустить его на сервере, я просто получаю ошибки.Socket.io работает только локально

Мои socket.js:

var server = require('http').Server(); 

var io = require('socket.io')(server); 

var Redis = require('ioredis'); 

var redis = new Redis(); 

redis.subscribe('report-created'); 

redis.on('message', function(channel, message){ 
message = JSON.parse(message); 

io.emit(channel + ':' + message.event, message.data); 
}); 

server.listen(3000); 

Клиент:

<script> 
    $.ajaxSetup({ 
     headers: { 
      'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
     } 
    }); 

    var socket = io('IPFromServer:3000'); 
    new Vue({ 
     el: 'body', 
     data: { 
      reports: [] 
     }, 

     ready: function(){ 
      socket.on('report-created:App\\Events\\ReportCreated', function(report){ 
       console.log(report["reportCreated"]); 



       $.ajaxSetup({ 
        headers: { 
         'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
        } 
       }); 

       window.location.replace("http://autoreport.dev/fileentry/get/" + report["reportCreated"]); 

      }.bind(this)); 
     } 
    }); 
</script> 

Как я уже сказал, это работает на Localhost просто отлично, но не на сервере я всегда получаю это сообщение об ошибке:

GET ...socket.io/?EIO=3&transport=polling&t=1446734287420-0 net::ERR_CONNECTION_TIMED_OUT socket.io.min.js:1 

Я много гугл, но не могу найти ответа. Возможно, некоторые из вас знают решение.

Приветствия

ответ

1

В сценарии на сервере изменения

server.listen(3000); 

для

server.listen(3000,'0.0.0.0') 

И в вашем клиента изменения сценария

var socket = io('IPFromServer:3000'); 

для

var server = 'IPFromServer:3000', 
    socket = io.connect(server); 

И убедитесь, что строка сервера правильно

+0

спасибо, но я все еще получаю ту же ошибку. –

+0

@ A.Janik отредактировать мой ответ – efirvida

+0

спасибо за обновление, но все та же ошибка –