gpt4 book ai didi

javascript - 如何在同一页面上两次连接到 GoInstant?

转载 作者:行者123 更新时间:2023-12-04 04:36:53 24 4
gpt4 key购买 nike

这是我的代码的基本结构:

var url = "https://goinstant.net/Something/SomethingElse";
goinstant.connect(url, function (err, connection, lobby) {
var something = lobby.key("something");
// and also some other stuff
});

然后,在不同的脚本文档中,但仍然在同一页面上:
var url = "https://goinstant.net/Something/SomethingElse";
goinstant.connect(url, function (err, connection, lobby) {
var something = lobby.key("something");
// and also some other stuff
});

基本完全相同的交易。除了现在谷歌浏览器给我这些错误:
WebSocket connection to 'wss://goinstant.net/engine.io/?acct=Something&app=SomethingElse&jwt=UtAhSf3vmpLNcT0…6MDbfhLZN3G4jNqmMQQjlnl&EIO=2&transport=websocket&sid=9yQO6vVBI1syXlsxAAhJ' failed: WebSocket is closed before the connection is established. platform.min.js:3
Uncaught TypeError: Cannot call method 'key' of undefined

我该如何解决这个问题?我删除了第二位代码,一切正常。

更新:所以现在我正在使用批准的答案的代码:
var url = "https://goinstant.net/Something/SomethingElse";
var opts = {sessionId: "", guestId: ""};
goinstant.connect(url, opts, function (err, connection, lobby) {
var something = lobby.key("something");
// and also some other stuff
});

但由于某种原因,它仍然无法正常工作。它显示了相同的错误,还有关于某种 Access-Control-Allow-Origin 的更多错误。试图通过 http 访问 GoInstant 的服务器。

另一个更新:我复制了答案的代码,然后它似乎工作正常。但我所做的是这样的:

我打开了大约 20 个谷歌浏览器标签,所有标签都具有相同的测试页面。

前 5 个有效,后 15 个无效,与之前的 websocket 错误相同,还有一些关于 key not defined 的信息。 .

我知道我开始变得讨厌,但我该如何解决这个问题?

最佳答案

使用未记录的 sessionIdguestId optionsObject parameter 上的属性`goinstant.connect' 的:

var url = "https://goinstant.net/ACCOUNT/APPLICATION";
var opts = {sessionId: null, guestId: null};

var conn1, lobby1, conn2, lobby2;

goinstant.connect(url, opts, function(err, connection, lobby) {
conn1 = connection;
lobby1 = lobby;

lobby.key('conn2Key').on('set', function(value, context) {
console.log('-----------------------');
console.log('Saw a set on conn2Key');
console.log('User:', context.userId);
console.log('Value:', value);
console.log('This connection is user:', lobby.self().name.split('/')[2]);
console.log('-----------------------');
});
});

goinstant.connect(url, opts, function(err, connection, lobby) {
conn2 = connection;
lobby2 = lobby;

setTimeout(function() {
lobby.key('conn2Key').set('Hi!');
}, 1000);
});

当设置为空字符串或 null 时,连接将生成一个新的访客用户和连接 session 。

默认情况下,GoInstant 应用程序中的访客用户信息在选项卡之间共享, session 在选项卡内重复使用(因此如果您重新加载,您可以正确地重新连接)。这就是为什么使用两个实例会中断;一样 sessionId尝试连接两次。

此功能未记录且不受支持,因此将来可能会更改或中断。

关于javascript - 如何在同一页面上两次连接到 GoInstant?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19616628/

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