Express에 WebSocket 추가
6641 단어 websocketstypescriptjavascript
단계는 간단합니다. 익스프레스 앱에 연결하고
ws
자체 서버를 생성하도록 허용하지 말고 경로를 선택하십시오. 단순한 HTTP 이상으로 협상하는 프로토콜인 "업그레이드"이벤트를 처리합니다.import express from "express"
import cookieParser from "cookie-parser"
import * as WebSocket from 'ws';
const app = express()
app.use(express.json())
app.use(cookieParser())
// all your normal routes
app.post("/refresh-token", issueRefreshToken)
app.post("/delete-token", deleteRefreshToken)
// and now the magic
const websocketServer = new WebSocket.Server({
noServer: true,
path: "/echo"
})
server.on("upgrade", (request, socket, head) => {
websocketServer.handleUpgrade(request, socket, head, (websocket) => {
websocketServer.emit("connection", websocket, request)
})
})
websocketServer.on('connection', (ws: WebSocket) => {
//connection is up, let's add a simple simple event
ws.on('message', (message: string) => {
websocketServer.clients.forEach((client) => {
client.send(`${message}`)
})
//log the received message and send it back to the client
console.log('received: %s', message);
ws.send(`Hello, you sent -> ${message}`);
});
ws.send('Hi there, I am a WebSocket server');
});
이렇게 하면 연결된 각 클라이언트에 수신한 내용을 브로드캐스트하는 에코 서버가 생성됩니다.
이를 테스트하기 위해 wscat이 잘 작동합니다.
yarn global add wscat
그런 다음 두 개의 별도 터미널에서 이 작업을 수행합니다.
wscat -c 'ws://localhost/echo'
하나를 입력하면 다른 하나에서 즉시 볼 수 있습니다.
Reference
이 문제에 관하여(Express에 WebSocket 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dukejones/add-websockets-to-express-2079텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)