Node.js 如何从一个nodejs服务器向另一个服务器订阅ws-websocket? < > < >微服务 > Nojjs,它必须订阅 WS>代码>(不是Socket .IO)WebSocket,该代码写在 C<中(您可以考虑这里的任何语言),请提供代码或文档供阅读或任何其他显示此如何操作(不具有OOP类样式的功能)。
必须在类中订阅消息的位置以及语法是什么样的?我尝试了数百万种方法,但在nestjs中的其他服务器上侦听时,您必须使用原始的“ws”来实现它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
// -------------------- 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库之外。如果您正在寻找其他的编程风格,那么在您的问题中,请非常具体地使用代码示例,说明您正在寻找哪种类型的风格。如果我理解这个问题,我很乐意帮忙。是的,这个问题我已经读了很多遍了。当你侮辱试图帮助你的人时,这通常不会帮助你更快地得到答案。