初始版本
创建 package
执行 npm init
命令为你的应用创建 package.json 文件。
npm init
这个命令会提示你输入一些内容,比如你应用的名称和版本。目前,你可以简单地按 RETURN 键接受大多数默认设置,除了入口点 entry point。
咱们倾向于使用 app.js 而不是 index.js。
其结果大致如下:
package name: (lr_webchat_node)
version: (1.0.0)
description: Chat app back-end built in node.js.
entry point: (index.js) app.js
test command:
git repository: https://github.com/Literank/lr_webchat_node.git
keywords: socket.io,websocket
author: literank.com
license: (ISC) MIT
About to write to /Users/netdong/workspace/2023/projects/lr_webchat_node/package.json:
{
"name": "lr_webchat_node",
"version": "1.0.0",
"description": "Chat app back-end built in node.js.",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Literank/lr_webchat_node.git"
},
"keywords": [
"socket.io",
"websocket"
],
"author": "literank.com",
"license": "MIT",
"bugs": {
"url": "https://github.com/Literank/lr_webchat_node/issues"
},
"homepage": "https://github.com/Literank/lr_webchat_node#readme"
}
该命令会创建一个 package.json
文件,其用于查看管理项目依赖。
安装依赖
安装 Socket.IO:
npm i socket.io
该命令会更新 package.json
文件并在项目中自动创建一个 package-lock.json
文件。
模块式包引入
更新 package.json:
@@ -1,6 +1,7 @@
{
"name": "lr_webchat_node",
"version": "1.0.0",
+ "type": "module",
"description": "Chat app back-end built in node.js.",
"main": "app.js",
"scripts": {
在 package.json
文件中,"type": "module"
表示项目使用 ECMAScript modules(ES modules)而不是 CommonJS modules。
集成 Socket.IO
创建 app.js:
import { createServer } from "http";
import { Server } from "socket.io";
// Create a basic HTTP server
const server = createServer();
// Attach Socket.IO to the HTTP server with CORS enabled
const io = new Server(server, {
cors: {
origin: "*", // Access from any origin
},
});
// Handle incoming socket connections
io.on("connection", (socket) => {
console.log("A user connected", socket.id);
});
// Start the server
const PORT = process.env.PORT || 4000;
server.listen(PORT, () => {
console.log("Chat Server listening on port " + PORT);
});
如下运行程序:
node app.js
将得到类似如下信息:
Chat Server listening on port 4000
你的 chat 服务器已经在 4000 端口跑起来了。