Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何从一个nodejs服务器向另一个服务器订阅ws-websocket? < > < >微服务 > Nojjs,它必须订阅 WS>代码>(不是Socket .IO)WebSocket,该代码写在 C<中(您可以考虑这里的任何语言),请提供代码或文档供阅读或任何其他显示此如何操作(不具有OOP类样式的功能)。_Node.js_Oop_Websocket - Fatal编程技术网

Node.js 如何从一个nodejs服务器向另一个服务器订阅ws-websocket? < > < >微服务 > Nojjs,它必须订阅 WS>代码>(不是Socket .IO)WebSocket,该代码写在 C<中(您可以考虑这里的任何语言),请提供代码或文档供阅读或任何其他显示此如何操作(不具有OOP类样式的功能)。

Node.js 如何从一个nodejs服务器向另一个服务器订阅ws-websocket? < > < >微服务 > Nojjs,它必须订阅 WS>代码>(不是Socket .IO)WebSocket,该代码写在 C<中(您可以考虑这里的任何语言),请提供代码或文档供阅读或任何其他显示此如何操作(不具有OOP类样式的功能)。,node.js,oop,websocket,Node.js,Oop,Websocket,必须在类中订阅消息的位置以及语法是什么样的?我尝试了数百万种方法,但在nestjs中的其他服务器上侦听时,您必须使用原始的“ws”来实现它 // -------------------- Packages ------------------ import { InjectQueue } from '@nestjs/bull'; import { Inject, Injectable, Logger } from '@nestjs/common'; import * as WebSocket

必须在类中订阅消息的位置以及语法是什么样的?

我尝试了数百万种方法,但在nestjs中的其他服务器上侦听时,您必须使用原始的“ws”来实现它

// -------------------- Packages ------------------

import { InjectQueue } from '@nestjs/bull';
import { Inject, Injectable, Logger } from '@nestjs/common';
import * as WebSocket from 'ws';

// ------------------------------------------------

@Injectable()
export class SocketService {
  // -------------------- LGGER --------------------------

  private logger = new Logger(SocketService.name);

  // ------------------- Filelds and Props ---------------

  private readonly routeForSocket = 'wss://yourSenderAddressMaybeIsC#orJAVA';
  private socketRLC: WebSocket;

  // ------------------- Ctor ---------------

  constructor() {
    this.onRLCSocketClose = this.onRLCSocketClose.bind(this);
    this.onRLCSocketError = this.onRLCSocketError.bind(this);
    this.onRLCSocketOpen = this.onRLCSocketOpen.bind(this);
    this.onRLCSocketMessage = this.onRLCSocketMessage.bind(this);
  }

  // =================== INIT SOCKET  ========================

  public initSocketRLC(rlcToken: string) {
    this.socketRLC = new WebSocket(this.routeForSocket,'token-if-need');
    this.socketRLC.onopen = this.onRLCSocketOpen;
    this.socketRLC.onerror = this.onRLCSocketError;
    this.socketRLC.onmessage = this.onRLCSocketMessage;
    this.socketRLC.onclose = this.onRLCSocketClose;
  }

  // SOCKET Listen On Open --------------------------------------------

  public async onRLCSocketOpen(msg) {
    console.log(msg);
    if (msg.type === 'open') {
      console.log('hellow');
    }
  }

  // SOCKET Listen MESSAGE HANDLER ------------------------------------------

  public async onRLCSocketMessage(msg: any) {
    const msgArr = msg.data.split(',');
    // console.log(msgArr, 'i am messagesssssssssssssssssssssss');
   
  }

  // SOCKET Listen ERROR HANDLER --------------------------------------------

  public onRLCSocketError(error: any)
    console.log(error, 'i am error');
  }

  // SOCKET Listen CLOSE HANDLER --------------------------------------------

  public async onRLCSocketClose(cmp: any) {
    console.log(cmp);
  }

  // SOCKET CLOSE BY FORCE --------------------------------------------------

  public async closeRLC(): Promise<any> {
    this.socketRLC.close();
  }
}
/--------------软件包------------------
从'@nestjs/bull'导入{InjectQueue};
从'@nestjs/common'导入{Inject,Injectable,Logger};
从“ws”导入*作为WebSocket;
// ------------------------------------------------
@可注射()
出口级SocketService{
//---------LGGER--------------------------
私有记录器=新记录器(SocketService.name);
//--------文件和道具---------------
专用只读路由ForSocket=wss://yourSenderAddressMaybeIsC#orJAVA';
私有socketRLC:WebSocket;
//---------------------------------
构造函数(){
this.onRLCSocketClose=this.onRLCSocketClose.bind(this);
this.onRLCSocketError=this.onRLCSocketError.bind(this);
this.onRLCSocketOpen=this.onRLCSocketOpen.bind(this);
this.onRLCSocketMessage=this.onRLCSocketMessage.bind(this);
}
//============================初始化套接字========================
公共initSocketRLC(rlcToken:string){
this.socketRLC=新WebSocket(this.routeForSocket,'token-if-need');
this.socketRLC.onopen=this.onRLCSocketOpen;
this.sockettrc.onerror=this.onRLCSocketError;
this.socketRLC.onmessage=this.onRLCSocketMessage;
this.socketRLC.onclose=this.onRLCSocketClose;
}
//插座监听打开--------------------------------------------
公共异步onRLCSocketOpen(msg){
控制台日志(msg);
如果(msg.type===“打开”){
console.log('hellow');
}
}
//套接字侦听消息处理程序------------------------------------------
公共异步onRLCSocketMessage(msg:any){
const msgArr=msg.data.split(',');
//log(msgArr,“我是messagessss”);
}
//套接字侦听错误处理程序--------------------------------------------
public onRLCSocketError(错误:any)
log(错误,“我是错误”);
}
//套接字侦听关闭处理程序--------------------------------------------
公共异步onRLCSocketClose(cmp:any){
控制台日志(cmp);
}
//强行关闭插座--------------------------------------------------
公共异步closeRLC():承诺{
this.socketRLC.close();
}
}

nodejs的任何ws-library的文档,您将看到如何将其作为客户端连接到外部ws-server的示例。这里的工作方式是你自己做研究,你尝试一些代码,当你陷入困境时,你会在这里发布一个特定的编码问题。你不应该在这里发帖要求我们为你做研究,也不应该在任何nodejs ws库的文档中发布内容。此外,我希望你意识到,你想要连接的目标ws服务器是用什么语言编写的并不重要。无论目标服务器是用C#、Java、Javascript、Python还是其他语言编写的,您都可以使用相同的ws-protocol来连接它。首先,我写的是,如果您知道文档给我,因为我没有找到一个,所有这些都在express env、functional、server for application和provider server中,您甚至没有读过这个问题。它不是express,它是oop,它是microservice,它是客户端而不是服务器。另外,这里是提问的地方,我的ide告诉我输入错误,每个问题都不是关于脚本的。很抱歉,如果你没有回答这个问题。我不知道你在问什么,除了已经记录的内容和两个更流行的用于nodejs的websocket库之外。如果您正在寻找其他的编程风格,那么在您的问题中,请非常具体地使用代码示例,说明您正在寻找哪种类型的风格。如果我理解这个问题,我很乐意帮忙。是的,这个问题我已经读了很多遍了。当你侮辱试图帮助你的人时,这通常不会帮助你更快地得到答案。