3 回答
TA贡献1943条经验 获得超7个赞
来自 onConnectioncomingMessage 的 cb 的第二个参数
this.server.on('connection', (socket:WebSocket, incomingMessage) => {
console.log(incomingMessage)
console.log('connection')
})
incomingMessage.url
'/v2/ta-websocket/22950b69-7928-43b9-8c38-efc5c126208e'

TA贡献1777条经验 获得超10个赞
这是我的工作示例:
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贡献1790条经验 获得超9个赞
在您的情况下,当您不指定 WS 的路径时,它正在侦听与服务器侦听相同的端口,而路径根本无关紧要。
WS 是一种不同的协议,您必须将精神转变为这种思维方式。
您将无法使用 Postman 测试 WS 服务器。为此,您必须创建您的 WS 客户端,但是,我强烈建议您使用 Nest 创建 E2E 测试,以便使用代码而不是手动进行测试。
添加回答
举报
