gpt4 book ai didi

javascript - 如何在 socket.io 事件后重定向客户端?

转载 作者:搜寻专家 更新时间:2023-10-31 23:32:48 24 4
gpt4 key购买 nike

我正在使用 node.js 及其 socket.io 模块构建一个简单的登录系统。我完成了身份验证部分,即使用 MongoDB,我现在可以确定尝试登录的用户是真实的还是假的。在这个阶段,当我找到真正的登录时,我需要将客户端重定向到不同的页面(index.html)。但是,由于未发送请求并且预计不会对 socket.io 事件做出响应,因此我无法使用 响应.setHeader(...);因为我的回调函数中没有“响应”参数。这是我的代码:

在客户端:

<script src="/socket.io/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
var socket=io();
$('form').submit(function(){
var un=$('#un').val();
var pw=$('#pw').val();
socket.emit('login',un,pw);
return false;
});
</script>

在服务器端,

var app=require('express')();
var server=require('http').Server(app);
var io=socket(server);
io.on('connection',function(client){
client.on('login',function(username,pw){
//if authenticated, direct the client to index.html
});
});

任何人都可以建议任何方法来做到这一点吗?

最佳答案

实现此目的的一种方法是向您的客户端发出重定向事件,并在客户端处理重定向。

服务器端:

var destination = '/index.html';
client.emit('redirect', destination);

客户端:

server.on('redirect', function(destination) {
window.location.href = destination;
});

关于javascript - 如何在 socket.io 事件后重定向客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33321792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com