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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Websocket連接錯誤:返回101,但不升級

Websocket連接錯誤:返回101,但不升級

幕布斯7119047 2022-10-13 16:02:20
我正在使用 ws 庫設(shè)置一些 websocket。我正在努力使用握手設(shè)置授權(quán)。我已經(jīng)向我們的服務(wù)器添加了一條路由來升級到 websocket 連接,如下所示:    .get(      '/chat',    authorisationFunction,    upgradeConnection,    ),websocket服務(wù)器:const WebSocket = require('ws');const wss = new WebSocket.Server({ port: 3030 }); 這是 upgradeConnection 函數(shù),如果授權(quán)成功,它將運(yùn)行:const upgradeConnection = (request, socket, head) => {  return wss.handleUpgrade(request, request.socket, head, function done(ws) {    return wss.emit('connection', ws, request);  });}我還有一個收聽消息的功能:function webSocketsServer() {  wss.on('connection', (ws, request, client) => {    ws.on('message', message => {      ws.send(message);    });  });}發(fā)出一個連接,并從我的服務(wù)器得到以下響應(yīng):HTTP/1.1 101 Switching ProtocolsUpgrade: websocketConnection: UpgradeSec-WebSocket-Accept: QyVvqadEcI1+ALka6j2pLKBkfNQ=但隨后在我的客戶端上立即出現(xiàn)錯誤“與 'ws://localhost:3000/chat' 的 WebSocket 連接失?。簬^無效”。但是當(dāng)我繞過握手并直接連接到我的 websocket 服務(wù)器時,我可以成功發(fā)送消息。該錯誤僅在客戶端上,不在后端。我錯過了什么?
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個贊

我不是 100% 確定這是唯一的方法,但可能會有所幫助,所以我將其發(fā)布?;谶@個答案,我會選擇使用相同端口進(jìn)行 http 和 websocket 連接的服務(wù)器。你可以像這樣實(shí)現(xiàn)它:


const { createServer } = require('http')

const ws = require('ws')

const express = require('express')


const app = express()


const server = createServer(app)


app.get('/', (req, res) => {

  res.send('I am a normal http server response')

})


const wsServer = new ws.Server({

  server,

  path: '/websocket-path',

})


wsServer.on('connection', (connection) => {

  connection.send('I am a websocket response')

})


server.listen(3030, () => {

  console.log(`Server is now running on http://localhost:3030`)

  console.log(`Websocket is now running on ws://localhost:3030/<websocket-path>`)

})

因此,您的服務(wù)器在端口 3030 上偵聽正常的 http 請求。如果它在路徑 '/websocket-path' 上收到一個 websocket 連接請求,它會被傳遞給 ws 連接處理程序,然后你就可以開始了。


查看完整回答
反對 回復(fù) 2022-10-13
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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