我在<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<thead>
<tr>
<th>Title</th>
<th>Duration</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>Animals</td>
<td>6:40</td>
<td>2005-12-21</td>
</tr>
<tr>
<td>Deer</td>
<td>6:24</td>
<td>2014-02-28</td>
</tr>
<tr>
<td>Ghost</td>
<td>11:40</td>
<td>2012-04-10</td>
</tr>
<tr>
<td>Wagons</td>
<td>21:40</td>
<td>2007-04-12</td>
</tr>
</tbody>
</table>
中有microservice
,必须订阅以nodejs
编写的ws
(不是socket.io)websocket(您可以在此处考虑任何语言),请提供片段或文档以供阅读,或任何其他说明如何执行此操作的功能(不起作用,使用oop类样式)。
在哪里必须订阅类中的消息?语法是什么?
答案 0 :(得分:0)
我尝试了数百万种方法,但是当在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();
}
}