在我的代码'main.js'中我试图打印客户端的套接字ID。当我将客户端连接到我的服务器'main.js'时,代码不会在控制台或浏览器中打印任何内容。
服务器端代码(main.js):
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 8000;
server.listen(port)
app.get('/',function(req,res){
res.send({name:ID});
});
var ID;
io.on('connection',function(socket){
ID = socket.id;
console.log('client id - '+ID);
});
答案 0 :(得分:1)
看起来像一个小错误。套接字io服务器事件不是connections
(复数),而是connect / connection
。 See docs
这是一个有效的例子:
<强> server.js 强>
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 8000;
server.listen(port)
app.get('/',function(req,res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection',function(socket){
ID = socket.id;
console.log('client id - '+ socket.id);
})
<强>的index.html 强>
<!doctype html>
<html lang="en">
<head></head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:8000');
socket.on('connect', function(data) {
console.log('socket connected')
});
</script>
</body>
</html>
我可以确认这在服务器和客户端都有效。