-1
我观看了一个关于websockets(socket.io)的laracast视频并自己尝试了一下。在本地主机上它工作得很好,但是当我尝试在服务器上运行它时,我只是得到错误。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>
就像我说的,它是工作在本地主机上就好了,但不是在服务器上,我总是得到这个错误消息:
GET ...socket.io/?EIO=3&transport=polling&t=1446734287420-0 net::ERR_CONNECTION_TIMED_OUT socket.io.min.js:1
我GOOGLE了很多,但无法找到任何答案。也许你们有些人知道一个解决方案。
问候
感谢,但我仍然得到同样的错误。 –
@ A.Janik修改我的答案 – efirvida
感谢更新,但仍是同样的错误 –