第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用 nestjs 獲取 websocket url 以及如何在郵遞員中進(jìn)行測(cè)試?

如何使用 nestjs 獲取 websocket url 以及如何在郵遞員中進(jìn)行測(cè)試?

qq_笑_17 2021-10-21 10:21:41
我正在使用 nestjs創(chuàng)建平均堆棧應(yīng)用程序。在 nest js 中,我使用的是 websockets。我不知道如何在 postman 中測(cè)試 websockets。通常我在郵遞員中有測(cè)試路由 url 并得到 o/p 喜歡:“ http://localhost:3000/ {routeUrl}”但是如何使用套接字我很困惑例子 :@WebSocketGateway() export class MessagesGateway implements  OnGatewayDisconnect {  constructor(@InjectModel(Message) private readonly messagesModel: ModelType<Message>,               @InjectModel(Room) private readonly roomsModel: ModelType<Room>,               @InjectModel(User) private readonly usersModel: ModelType<User>) { // <1>   }   async handleDisconnect(client: Socket) { // <2>     const user = await this.usersModel.findOne({clientId: client.id});     if (user) {       client.server.emit('users-changed', {user: user.nickname, event: 'left'});       user.clientId = null;       await this.usersModel.findByIdAndUpdate(user._id, user);     }   }   @SubscribeMessage('enter-chat-room') // <3>   async enterChatRoom(client: Socket, data: { nickname: string, roomId: string }) {     let user = await this.usersModel.findOne({nickname: data.nickname});     if (!user) {       user = await this.usersModel.create({nickname: data.nickname, clientId: client.id});     } else {       user.clientId = client.id;       user = await this.usersModel.findByIdAndUpdate(user._id, user, {new: true});     }     client.join(data.roomId).broadcast.to(data.roomId)       .emit('users-changed', {user: user.nickname, event: 'joined'}); // <3>   }   @SubscribeMessage('leave-chat-room') // <4>   async leaveChatRoom(client: Socket, data: { nickname: string, roomId: string }) {     const user = await this.usersModel.findOne({nickname: data.nickname});     client.broadcast.to(data.roomId).emit('users-changed', {user: user.nickname, event: 'left'}); // <3>     client.leave(data.roomId);   }
查看完整描述

3 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

來(lái)自 onConnectioncomingMessage 的 cb 的第二個(gè)參數(shù)


this.server.on('connection', (socket:WebSocket, incomingMessage) => {

   console.log(incomingMessage)

   console.log('connection')

})


incomingMessage.url

'/v2/ta-websocket/22950b69-7928-43b9-8c38-efc5c126208e'

http://img1.sycdn.imooc.com//6170cf0c00015e3907500335.jpg

查看完整回答
反對(duì) 回復(fù) 2021-10-21
?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

這是我的工作示例:


  import * as WebSocket from 'ws'

  beforeAll(async () => {

    const moduleFixture = await Test.createTestingModule({

      imports: [

        SocketModule,

      ],

    })

      .compile()


    app = moduleFixture.createNestApplication()

    app.useWebSocketAdapter(new WsAdapter(app))

    await app.init()

  })


  it('should connect successfully', (done) => {

    const address = app.getHttpServer().listen().address()

    const baseAddress = `http://[${address.address}]:${address.port}`


    const socket = new WebSocket(baseAddress)


    socket.on('open', () => {

      console.log('I am connected! YEAAAP')

      done()

    })


    socket.on('close', (code, reason) => {

      done({ code, reason })

    })


    socket.on ('error', (error) => {

      done(error)

    })

  })


查看完整回答
反對(duì) 回復(fù) 2021-10-21
?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

在您的情況下,當(dāng)您不指定 WS 的路徑時(shí),它正在偵聽(tīng)與服務(wù)器偵聽(tīng)相同的端口,而路徑根本無(wú)關(guān)緊要。

WS 是一種不同的協(xié)議,您必須將精神轉(zhuǎn)變?yōu)檫@種思維方式。

您將無(wú)法使用 Postman 測(cè)試 WS 服務(wù)器。為此,您必須創(chuàng)建您的 WS 客戶端,但是,我強(qiáng)烈建議您使用 Nest 創(chuàng)建 E2E 測(cè)試,以便使用代碼而不是手動(dòng)進(jìn)行測(cè)試。


查看完整回答
反對(duì) 回復(fù) 2021-10-21
  • 3 回答
  • 0 關(guān)注
  • 379 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)