var so-6ren">
gpt4 book ai didi

ios - socket.io 无法处理错误

转载 作者:行者123 更新时间:2023-11-29 00:41:49 24 4
gpt4 key购买 nike

我正在尝试使用 node.js 和 socket.io 制作实时应用程序。如我所见,服务器可以看到新用户何时连接但无法将信息返回给客户端或其他东西。这是我在客户端的内容:

<script src="<?= base_url('assets/js/socket.io.js') ?>"></script>
<script>
var socket;
socket = io('http://***.***.***.***:3030', {query: "key=key"});

socket.on('connect', function (data) {
console.log('Client side successfully connected with APP.');
});

socket.on('error', function (err) {
console.log('Error: ' + err);
});
</script>

这是服务器端:

var app = require("express")();
var http = require("http").createServer(app);
var io = require("socket.io")(http);

http.listen(3030, function () {
globals.debug('Server is running on port: 3030', 'success');
});

io.set('authorization', function (handshakeData, accept) {
var domain = handshakeData.headers.referer.replace('http://', '').replace('https://', '').split(/[/?#]/)[0];

if ('www.****.com' == domain) {
globals.debug('New user connected', 'warning');
} else {
globals.debug('Bad site authentication data, chat will be disabled.', 'danger');
return accept('Bad site authentication data, chat will be disabled.', false);
}
});

io.use(function (sock, next) {
var handshakeData = sock.request;
var userToken = handshakeData._query.key;

console.log('The user ' + sock.id + ' has connected');
next(null, true);
});

当有人访问网站时,我希望在控制台输出中看到“New user connected”,我看到了:screen shot并且用户应该在浏览器控制台上看到输出:“客户端成功连接到 APP。”但我没有表现出来。我也尝试向用户发送数据,但它也不起作用。我看不到任何错误或其他东西。这不是我第一次使用套接字,而是第一次遇到这样的问题。也许有任何错误报告方法来处理错误之类的?我也看不到 io.use(....) 方法的输出

最佳答案

解决方案是在验证后立即通过“OK”标志以执行下一个方法:

io.set('authorization', function (handshakeData, accept) { var domain = handshakeData.headers.referer.replace('http://', '').replace('https://', '').split(/[/?#]/)[0];

if ('www.****.com' == domain) {
globals.debug('New user connected', 'warning');
accept(null, true);
} else {
globals.debug('Bad site authentication data, chat will be disabled.', 'danger');
return accept('Bad site authentication data, chat will be disabled.', false);
}

});

关于ios - socket.io 无法处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39294323/

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