这是我的代码的基本结构:
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
});基本的完全一样的交易。但现在谷歌Chrome给了我这些错误:
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的东西。
我知道我开始变得讨厌了,但我该怎么解决呢?
发布于 2013-10-27 14:17:02
在‘goinstt.Connection’的sessionId和guestId属性中使用未记录的optionsObject参数:
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时,连接将为连接生成一个新的来宾用户和会话。
默认情况下,GoInstant应用程序中的来宾用户信息在选项卡之间共享,会话在选项卡中重用(因此,如果重新加载,可以正确地重新连接)。这就是为什么使用两个实例中断的原因;同一个sessionId尝试两次连接。
该特性没有文档化,也不受支持,因此它将来可能会更改或中断。
https://stackoverflow.com/questions/19616628
复制相似问题