【发布时间】:2018-01-08 02:54:42
【问题描述】:
我使用passport.js 提供用户注册和登录。用户登录成功后,可以进入聊天室,聊天室是socket.io。我想使用 socket.io 显示通过护照登录的用户名。这是我的代码:
服务器端socket.io
io.on('connection', function(socket) {
io.emit('user connect');
});
客户端
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(document).ready( function () {
var socket = io();
socket.on('user connect', function () {
$('#loggedUsers').append($('<li>').text(username)); <!-- right username is what I can't figure out how to do -->
});
});
</script>
</head>
<body>
<ul id="loggedUsers" >
<li> username.. </li>
...
</ul>
</body>
</html>
以及人们如何获得html 文件:
编辑:添加了中间件 isLoggedIn,我之前忘记添加了
router.get('/chatroom', isLoggedIn, function(req, res) {
console.log(req.user.username); //exactly what I want
res.sendFile(path.join(__dirname, '../views', 'chatroom.html'));
});
怎么做?
注意:我的chatroom.html 没有用户名表单
解决了。
我发现了passport.socketio 模块,它做了我想要的。
https://www.npmjs.com/package/passport.socketio
【问题讨论】:
标签: javascript node.js socket.io passport.js