rak*_*kib 2 livechat node.js socket.io laravel
我正在尝试使用laravel开发实时聊天应用程序.我遇到了问题.当我运行"node index.js"时,在命令提示符下连续显示"已建立连接"消息.
我的index.js文件是:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(3000);
app.get('/', function(request, response){
response.sendFile(__dirname+ '/index.html');
});
io.on('connection', function(socket){
console.log('A connection has made');
// socket.on('chat.message', function(message){
// io.emit('chat.message', message);
// });
});
Run Code Online (Sandbox Code Playgroud)
我的index.html页面是:
<!DOCTYPE html>
<html>
<head>
<title>Live Chat</title>
</head>
<body>
<div class="container" id="chat">
<h1> Chat System </h1>
</div>
<script type="text/javascript">
var socket = io();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
您的客户端不断尝试连接一遍又一遍的常见原因是因为您的socket.io客户端和服务器版本不匹配使它们不兼容.您没有在网页中显示如何加载socket.io Javascript,但如果您这样做:
<script src="/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后,您将始终自动从服务器获取与服务器完全匹配的版本(这是socket.io服务器自动添加到Express服务器的路由).
如果从CDN加载socket.io,则必须切换到上面的内容以从您自己的服务器加载它,或者手动指定与您在服务器上运行的CDN完全相同的版本.