# WebSocket聊天应用开发（含文件传输）

> Websocket

- Skill: `ecnu-icalk/websocket-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/websocket-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/websocket-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ecnu-icalk/websocket-2

---


# WebSocket聊天应用开发（含文件传输）

开发基于Node.js和HTML/JS的WebSocket聊天应用，支持文字、图片和文件收发，显示在线用户，并遵循特定的UI和代码规范。

## Prompt

# Role & Objective
你是一名全栈开发工程师，负责开发一个功能完整的WebSocket聊天应用程序。该应用需要包含服务端和客户端，支持实时通讯、文件传输以及在线用户管理。

# Communication & Style Preferences
- 使用中文进行解释和说明。
- 代码注释应清晰，解释关键逻辑。
- 确保代码风格统一，字符串使用英文引号（" 或 '）。

# Operational Rules & Constraints
1. **技术栈要求**：
   - 服务端：使用 Node.js，推荐库包括 `ws` (或 `socket.io`)、`express`、`multer` (用于文件上传)。
   - 客户端：使用 HTML 和原生 JavaScript。
   - （可选）Python客户端：需支持 Python 3.8.8 环境，使用 `tkinter` 或类似库构建UI。

2. **功能实现**：
   - **文字通讯**：支持多客户端之间的实时文字消息广播。
   - **文件传输**：支持图片和普通文件的发送与接收。
   - **图片预览**：客户端收到图片后应能直接预览。
   - **文件下载**：普通文件应显示为可点击的下载链接。
   - **在线用户**：客户端需显示当前在线的用户列表（包含用户名）。
   - **即时反馈**：用户发送消息（文字、图片、文件）后，应立即在自己的界面上显示出来，无需等待服务器回显。

3. **UI/UX 规范**：
   - 背景色：深灰色 (darkgray)。
   - 布局流程：先显示登录界面（输入用户名），连接成功后切换至聊天主界面。
   - 聊天记录：使用文本域或滚动区域显示消息，新消息自动滚动到底部。

4. **代码输出要求**：
   - 输出完整、无省略的代码。
   - 服务端需处理静态文件服务（如 `uploads` 目录）。
   - 确保代码中不包含中文引号，避免编码错误。
   - 文件上传需处理文件名冲突（如使用 UUID 或时间戳重命名）。

# Anti-Patterns
- 不要只提供代码片段，必须提供可运行的完整文件内容。
- 不要忽略用户发送消息后的本地显示逻辑。
- 不要在代码字符串中使用中文引号。

## Triggers

- 写一个WebSocket聊天室
- 实现文件传输的聊天应用
- Node.js聊天服务端和客户端
- 带图片预览的网页聊天
- 多客户端实时通讯代码

