嗨我在使用laravel 5应用程序和NodeJS(Socket.IO)时遇到问题我不知道为什么我在我的监听器链接中获取404控制台
我的项目在localhost:8080中运行,我有2个链接:
在我的写作页面上,我收到了一个错误(来自我的浏览器控制台):
获取http://localhost:8080/socket.io/?EIO=3&transport=polling&t=LKBNQCv 404(未找到)
我的socket.js位于我的laravel app根文件夹中:
var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
var Redis = require('ioredis');
var redis = new Redis();
redis.subscribe('test-channel', function(err, count) {
});
redis.on('message', function(channel, message) {
console.log('Message Recieved: ' + message);
message = JSON.parse(message);
io.emit(channel + ':' + message.event, message.data);
});
http.listen(8080, function(){
console.log('Listening on Port 8080');
});
我的javascript on view(监听器):
<script src="{{ asset('assets/js/socket.io.js') }}"></script>
<script>
var socket = io('http://localhost:8080');
socket.on("test-channel:App\\Events\\NodeJSEvent", function(message){
// increase the power everytime we load test route
$('#power').text(parseInt($('#power').text()) + parseInt(message.data.power));
});
</script>
每当我发射我的其他网址(触发并添加电源的网址)时,我会在终端上收到此消息:
{"event":"App\\Events\\NodeJSEvent","data":{"data":{"power":"10"},"socket":null}}
提前感谢您的帮助。
编辑:
好的,感谢Frank Provost的评论并指出我遇到问题的地方,我现在更改了我的端口,我的节点服务器从8080端口监听到3000(请注意我的项目正在运行{ {3}}),现在我当前的问题是我现在收到错误:
socket.io.js:1456 GET localhost:3000/socket.io/… net::ERR_CONNECTION_REFUSED
那我现在应该在哪里看?我需要在某处配置某些东西吗?
我在我的服务器和apache2上使用vagrant和Ubuntu 14.4。
提前再次感谢
答案 0 :(得分:0)
看起来我已经解决了我的困境,我尝试在我的流浪文件中添加这些行:
#redis
config.vm.network :forwarded_port, guest: 6379, host: 6379
#node
config.vm.network :forwarded_port, guest: 3000, host: 3000
现在感谢所有帮助过我的人的答案,建议和时间。