首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只使用节点WebSocket的Lightstreamer作为客户端?

只使用节点WebSocket的Lightstreamer作为客户端?
EN

Stack Overflow用户
提问于 2022-10-16 19:38:10
回答 1查看 46关注 0票数 0

你好,出于某些原因,我不喜欢使用Lightstreamer中的libs,例如使用Charles进行调试或发送原始文本命令。

我获得到服务器的连接,但在发送任何命令后失败。

我使用了这个https://demos.lightstreamer.com/HelloWorld/,并尝试使我成为Node/TS版本。

我从示例中发送第一个字符串,即"wsok“,所有从服务器获得的信息都由于意外错误而无法继续。

我的问题必须与发送消息有关,因为没有连接就是工作。

http://192.168.185.24:8888是我的Charles调试。

代码语言:javascript
复制
import * as WebSocket from 'ws';
var url = require('url');
var HttpsProxyAgent = require('https-proxy-agent');

class sg{

    ws:WebSocket;
    constructor(){
        var headers = {};
        headers["Host"] ="push.lightstreamer.com";
        headers["User-Agent"] ="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0";
        headers["Accept"] ="*/*";
        headers["Accept-Language"] ="de,en-US;q=0.7,en;q=0.3";
        headers["Accept-Encoding"] ="gzip, deflate, br";
        headers["Sec-WebSocket-Version"] ="13";
        headers["Origin"] ="https://demos.lightstreamer.com";
        headers["Sec-WebSocket-Protocol"] ="TLCP-2.2.0.lightstreamer.com";
        headers["Sec-WebSocket-Extensions"] ="permessage-deflate";
        headers["Sec-WebSocket-Key"] ="a key==";
        headers["Connection"] ="keep-alive, Upgrade";
        headers["Sec-Fetch-Dest"] ="websocket";
        headers["Sec-Fetch-Mode"] ="websocket";
        headers["Sec-Fetch-Site"] ="same-site";
        headers["Pragma"] ="no-cache";
        headers["Cache-Control"] ="no-cache";
        headers["Upgrade"] ="websocket";


        var options = url.parse('http://192.168.185.24:8888');
        var agent = new HttpsProxyAgent(options);
        this.ws = new WebSocket("wss://push.lightstreamer.com/lightstreamer", ["js.lightstreamer.com", "websocket"], {
            headers, agent: agent,  rejectUnauthorized: false
        });
        this.ws.onopen = (e) => {
            console.log("open")
            setTimeout(() => {
                this.ws.send(`wsok`);
            }, 1500);
        };
        this.ws.onmessage = (e) => {
            console.log(e)
        }
        this.ws.onerror = error => {
            console.log(`WebSocket error: ${error}`)
        }
    }

}

let xsg = new sg();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-17 09:12:38

您没有正确地使用对象WebSocket。

试一试:

代码语言:javascript
复制
ws = new WebSocket("wss://push.lightstreamer.com/lightstreamer", "TLCP-2.2.0.lightstreamer.com")
ws.onopen = (e) => {
  console.log("open")          
  ws.send("wsok")         
}

对于其他部分,您必须查看TLCP规范文件,特别是该部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74090196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档