所以我有一个工作的express服务器,我想添加websockets功能,这是应该工作的代码
import express from "express";
import { WebSocketServer } from 'ws';
const app = express();
const port = 80;
const wss = new WebSocketServer({ server:app });
wss.on('connection', function connection(ws) {
ws.on('message', function message(data) {
console.log('received: %s', data);
});
});
app.listen(port, function () {
console.log("Server listening on port: " + port);
});
字符串
上面的没有工作,什么工作是这样的:
import { createServer } from 'http';
import express from "express";
import { WebSocketServer } from 'ws';
const app = express();
const port = 80;
const server = createServer(app)
const wss = new WebSocketServer({ server:server });
wss.on('connection', function connection(ws) {
ws.on('message', function message(data) {
console.log('received: %s', data);
});
});
server.listen(port, function () {
console.log("Server listening on port: " + port);
});
型
那么我的结论是正确的,我需要从'http'导入{ createServer }才能使代码工作吗?
1条答案
按热度按时间ghg1uchk1#
简短回答- * 是。如果您使用Express,则必须使用。**
Express是构建在Node.js的HTTP服务器之上的Web服务器框架,它不直接公开服务器示例。因此,要在Express中使用WebSockets,您必须自己创建一个HTTP服务器。
字符串
如果没有上面的行,服务器将不会运行WS连接。