在Tabris.js中使用Websocket api连接到socket.io服务器

我正在尝试为Android构建一个Tabris应用,该应用充当我的socket.io服务器的客户端。我正在做一些阅读,发现tabris.js支持WebSocket API,所以我尝试连接到我的套接字。像这样的io服务器

var socket = new WebSocket('ws://159.89.92.113:4343');

但是我得到这个错误

The WebSocket protocol has too be a string or an array of strings

所以然后我尝试用我能想到的唯一内容填充该参数

var socket = new WebSocket('ws://159.89.92.113:4343','ws');

然后我得到这个错误

Can not 'send' WebSocket message when WebSocket state is CONNECTING

老实说,我不知道如何做这项工作,我尝试了很多不同的事情。

deaddao 回答:在Tabris.js中使用Websocket api连接到socket.io服务器

关于protocols参数,这是WHATWG Standard必须说的话:

  

协议是字符串或字符串数​​组。如果它是一个字符串,则等效于仅由该字符串组成的数组。如果省略,则等效于空数组。数组中的每个字符串都是一个子协议名称。仅当服务器报告它选择了这些子协议之一时,才会建立连接。子协议名称必须匹配对由WebSocket协议定义的Sec-WebSocket-Protocol字段值组成的元素的要求。

因此,请参阅服务器的配置信息,以了解该参数的发送内容(如果有的话)。


连接时不应出现“ WebSocket状态为CONNECTING时不能'发送'WebSocket消息”消息,但是如果您尝试过早发送,则很可能发生;当在连接阶段调用send()时,特别发生the message。您可以将发送消息延迟到建立连接为止,

const socket = new WebSocket('ws://159.89.92.113:4343'); 
socket.onopen = (event) => {
    socket.send('Hello World');
};

最后,这是一个使用Tabris.js应用程序作为Websocket服务器的客户端客户端的WebSocket设置的工作端到端示例:

https://github.com/eclipsesource/tabris-js/tree/2.x/examples/web-socket

简单地:

git clone https://github.com/eclipsesource/tabris-js
cd tabris-js
git checkout 2.x
cd examples/web-socket
npm install
tabris serve

并从同一目录npm run server

在另一个窗口中启动服务器

*请注意,这是为Tabris.js 2.x编写的,因此,您将需要使用2.x客户端或migrate it to 3.x对其进行测试。

,

好的,所以整个问题都是我需要在github上指定一个协议的人指出,他们通常使用'chat-protocol'作为参数,所以一旦我做得很好,就可以

const socket = new WebSocket('ws://157.230.66.208:4343/socket.io/?EIO=3&transport=websocket','chat-protocol');

还要与常规Web套接字与socket.io对话,您必须像这样格式化字符串

socket.send('42' + JSON.stringify(['checkLogin',username,password]));

像魅力一样工作,只需要弄清楚如何获得诺言和补偿就可以像这样

本文链接:https://www.f2er.com/3155600.html

大家都在问