You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.0 KiB
5.0 KiB
文件传输和多媒体功能使用指南
功能概述
本聊天系统现已支持以下多媒体功能:
1. 普通文件传输
- 支持任意类型的文件传输
- 文件大小限制:10MB
- 自动保存到
downloads目录
2. 图片传输与显示
- 支持格式:JPG, PNG, GIF, BMP, WebP
- 自动在聊天界面中显示图片预览
- 点击图片可在新窗口查看原图
3. 视频传输与播放
- 支持格式:MP4, AVI, MOV, WMV, FLV, WebM
- 内置视频播放器,支持在线播放
- 播放控制:播放/暂停、进度条、音量调节
4. 音频传输与播放
- 支持格式:MP3, WAV, OGG, M4A, FLAC
- 内置音频播放器
- 播放控制:播放/暂停、进度条、音量调节
5. 语音聊天
- 实时录制语音消息
- 支持语音播放
- 显示语音时长
使用方法
TCP客户端(命令行)
发送文件
/file @用户名 文件路径
示例:
# 发送图片
/file @Alice photo.jpg
# 发送视频
/file @Bob video.mp4
# 发送音频
/file @Charlie music.mp3
# 发送普通文件
/file @David document.pdf
接收文件
- 文件会自动保存到
downloads目录 - 文件名格式:
用户名_原文件名 - 控制台会显示文件信息和保存路径
Web客户端(浏览器)
发送文件
- 点击输入框左侧的 📎 按钮
- 选择要发送的文件
- 文件会自动发送给当前聊天对象
发送语音消息
- 点击输入框右侧的 🎤 按钮开始录音
- 按钮变为 ⏹️ 表示正在录音
- 再次点击停止录音并发送
查看多媒体内容
- 图片:自动显示在聊天界面,点击可放大查看
- 视频:显示视频播放器,点击播放按钮观看
- 音频:显示音频播放器,点击播放按钮收听
- 语音:显示语音播放控件,点击播放
- 普通文件:显示文件信息,点击"下载"按钮保存
技术实现
消息类型
public enum MessageType {
FILE, // 普通文件
IMAGE, // 图片文件
VIDEO, // 视频文件
AUDIO, // 音频文件
VOICE // 语音消息
}
消息结构
Message {
MessageType type; // 消息类型
String sender; // 发送者
String receiver; // 接收者
String fileName; // 文件名
String fileType; // MIME类型
long fileSize; // 文件大小(字节)
byte[] fileData; // 文件数据
int duration; // 音视频时长(秒)
Date timestamp; // 时间戳
}
文件类型识别
系统根据文件扩展名自动识别文件类型:
- 图片:.jpg, .jpeg, .png, .gif, .bmp, .webp
- 视频:.mp4, .avi, .mov, .wmv, .flv, .webm
- 音频:.mp3, .wav, .ogg, .m4a, .flac
- 其他:作为普通文件处理
注意事项
-
文件大小限制
- Web客户端:最大10MB
- TCP客户端:理论上无限制,但建议不超过100MB
-
浏览器兼容性
- 语音录制需要浏览器支持 MediaRecorder API
- 建议使用 Chrome、Firefox、Edge 等现代浏览器
-
网络传输
- 大文件传输可能需要较长时间
- 建议在稳定的网络环境下使用
-
存储空间
- 接收的文件会保存在本地
- 定期清理
downloads目录以释放空间
-
安全性
- 文件传输未加密,请勿传输敏感信息
- 接收文件前请确认发送者身份
编译和运行
编译
# Windows
compile.bat
# Linux/Mac
./compile.sh
运行服务器
# TCP服务器
run_server.bat # Windows
./run_server.sh # Linux/Mac
# WebSocket服务器(支持Web客户端)
run_web_server.bat # Windows
./run_web_server.sh # Linux/Mac
运行客户端
# TCP客户端
run_client.bat # Windows
./run_client.sh # Linux/Mac
# Web客户端
# 在浏览器中访问 http://localhost:8080
示例场景
场景1:发送图片
用户A: /file @用户B photo.jpg
系统: 正在发送文件: photo.jpg (2.5 MB)
系统: 文件发送完成
用户B收到:
[用户A] 发送了图片: photo.jpg
文件大小: 2.5 MB
已保存到: downloads/用户B_photo.jpg
场景2:发送语音消息
用户A: 点击🎤按钮,录制5秒语音
系统: 语音消息已发送
用户B收到:
[用户A] 发送了语音消息 (5秒)
已保存到: downloads/用户B_voice_1234567890.webm
故障排除
问题1:无法发送文件
- 检查文件是否存在
- 检查文件大小是否超过限制
- 确认已选择聊天对象
问题2:无法录制语音
- 检查浏览器是否支持 MediaRecorder API
- 确认已授予麦克风权限
- 尝试刷新页面重新授权
问题3:文件无法播放
- 检查浏览器是否支持该文件格式
- 尝试下载文件后使用本地播放器
- 确认文件未损坏
未来改进
- 支持文件分片传输(大文件)
- 添加传输进度显示
- 支持文件预览(PDF、Office文档)
- 添加文件加密传输
- 支持视频通话
- 添加屏幕共享功能