在 nodejs 中显示连续连接消息 socket.io
Show continuous connection message in nodejs socket.io
我正在尝试使用 laravel 开发实时聊天应用程序。我遇到了一个问题。当我 运行 "node index.js" 时,'A connection has made' 消息在命令提示符中连续显示。
我的 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);
// });
});
我的 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>
我该如何解决?
您的客户端不断尝试连接的常见原因是您的 socket.io 客户端和服务器版本不匹配,导致它们不兼容。您没有显示如何在您的网页中加载 socket.io Javascript,但是如果您这样做:
<script src="/socket.io/socket.io.js"></script>
然后,您将始终自动从您的服务器获取与您的服务器完全匹配的版本(这是socket.io服务器自动添加到您的Express服务器的路由)。
如果您从 CDN 加载 socket.io,那么您必须切换到上面的方法以从您自己的服务器加载它,或者从 CDN 手动指定与您 [=22] 完全相同的版本=] 在服务器上。
例如,将端口号从 3000 更改为 7000。
如果您在 React/NextJs 上使用它
只需将它们声明为全局
import socketClient from "socket.io-client";
const SERVER = "http://127.0.0.1:8000";
const socket = socketClient(SERVER);
export default chatApplication=()=>{
//main component
}
我正在尝试使用 laravel 开发实时聊天应用程序。我遇到了一个问题。当我 运行 "node index.js" 时,'A connection has made' 消息在命令提示符中连续显示。
我的 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);
// });
});
我的 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>
我该如何解决?
您的客户端不断尝试连接的常见原因是您的 socket.io 客户端和服务器版本不匹配,导致它们不兼容。您没有显示如何在您的网页中加载 socket.io Javascript,但是如果您这样做:
<script src="/socket.io/socket.io.js"></script>
然后,您将始终自动从您的服务器获取与您的服务器完全匹配的版本(这是socket.io服务器自动添加到您的Express服务器的路由)。
如果您从 CDN 加载 socket.io,那么您必须切换到上面的方法以从您自己的服务器加载它,或者从 CDN 手动指定与您 [=22] 完全相同的版本=] 在服务器上。
例如,将端口号从 3000 更改为 7000。
如果您在 React/NextJs 上使用它 只需将它们声明为全局
import socketClient from "socket.io-client";
const SERVER = "http://127.0.0.1:8000";
const socket = socketClient(SERVER);
export default chatApplication=()=>{
//main component
}