我试图显示我与带套接字的页面的连接,但是当我重新加载我的页面时,该消息显示2次,当我再次重新加载时,3次等...
这是代码节点js。
.get('/compte/', function(req, res) {
res.render('compte.ejs');
io.sockets.on('connection', function(socket){
socket.on("new_client", function(message){
console.log(message);
});
});
});
这是代码html / script。
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8080');
socket.emit('new_client', "hello");
</script>
,这是2次重新加载后的显示。
hello
hello
hello
hello
hello
hello
我希望能清楚我的问题。 谢谢。
答案 0 :(得分:0)
实际上,您的客户端不会连接多次,但您会在/compte/
的每个get请求中为SocketIO连接添加事件侦听器。它们累积在io.sockets
。
尝试将SocketIO事件处理程序移出请求处理程序:
.get('/compte/', function(req, res) {
res.render('compte.ejs');
});
io.sockets.on('connection', function(socket){
socket.on("new_client", function(message){
console.log(message);
});
});