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'

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)
})
})

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è)試。
添加回答
舉報(bào)