From dfa225e68e59270647d0fd170e2bb44440a799aa Mon Sep 17 00:00:00 2001 From: MatrixSeven Date: Tue, 2 Sep 2025 16:30:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=A0=E9=99=A4=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E6=9E=84=E5=BB=BA=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E5=92=8C=E6=A8=A1=E5=9E=8B=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chuan-next/build-ssg-simple.sh | 87 ---------------------------------- go.mod | 1 - internal/models/models.go | 56 ---------------------- internal/web/static.go | 52 -------------------- 4 files changed, 196 deletions(-) delete mode 100644 chuan-next/build-ssg-simple.sh delete mode 100644 internal/models/models.go delete mode 100644 internal/web/static.go diff --git a/chuan-next/build-ssg-simple.sh b/chuan-next/build-ssg-simple.sh deleted file mode 100644 index 09788d2..0000000 --- a/chuan-next/build-ssg-simple.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash - -# ============================================================================= -# 简化版 SSG 构建脚本 -# 专注于 API 路由的处理和静态导出 -# ============================================================================= - -set -e - -# 颜色定义 -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -RED='\033[0;31m' -NC='\033[0m' - -# 配置 -PROJECT_ROOT="$(pwd)" -API_DIR="$PROJECT_ROOT/src/app/api" -TEMP_API_DIR="/tmp/nextjs-api-$(date +%s)" - -echo -e "${GREEN}🚀 开始 SSG 静态导出构建...${NC}" - -# 错误处理函数 -cleanup_on_error() { - echo -e "${RED}❌ 构建失败,正在恢复文件...${NC}" - if [ -d "$TEMP_API_DIR" ]; then - if [ -d "$TEMP_API_DIR/api" ]; then - mv "$TEMP_API_DIR/api" "$API_DIR" 2>/dev/null || true - echo -e "${YELLOW}📂 已恢复 API 目录${NC}" - fi - rm -rf "$TEMP_API_DIR" - fi - exit 1 -} - -# 设置错误处理 -trap cleanup_on_error ERR INT TERM - -# 步骤 1: 备份 API 路由 -if [ -d "$API_DIR" ]; then - echo -e "${YELLOW}📦 备份 API 路由...${NC}" - mkdir -p "$TEMP_API_DIR" - mv "$API_DIR" "$TEMP_API_DIR/" - echo "✅ API 路由已备份到临时目录" -else - echo -e "${YELLOW}⚠️ API 目录不存在,跳过备份${NC}" -fi - -# 步骤 2: 清理构建文件 -echo -e "${YELLOW}🧹 清理之前的构建...${NC}" -rm -rf .next out - -# 步骤 3: 执行静态构建 -echo -e "${YELLOW}🔨 执行静态导出构建...${NC}" -NEXT_EXPORT=true yarn build - -# 步骤 4: 验证构建结果 -if [ -d "out" ] && [ -f "out/index.html" ]; then - echo -e "${GREEN}✅ 静态导出构建成功!${NC}" - - # 显示构建统计 - file_count=$(find out -type f | wc -l) - dir_size=$(du -sh out | cut -f1) - echo "📊 构建统计:" - echo " - 文件数量: $file_count" - echo " - 总大小: $dir_size" -else - echo -e "${RED}❌ 构建验证失败${NC}" - cleanup_on_error -fi - -# 步骤 5: 恢复 API 路由 -if [ -d "$TEMP_API_DIR/api" ]; then - echo -e "${YELLOW}🔄 恢复 API 路由...${NC}" - mv "$TEMP_API_DIR/api" "$API_DIR" - echo "✅ API 路由已恢复" -fi - -# 步骤 6: 清理临时文件 -rm -rf "$TEMP_API_DIR" - -echo "" -echo -e "${GREEN}🎉 SSG 构建完成!${NC}" -echo -e "${GREEN}📁 静态文件位于: ./out/${NC}" -echo -e "${GREEN}🚀 部署命令: npx serve out${NC}" -echo "" -echo -e "${YELLOW}💡 提示: 静态版本会直接连接到 Go 后端 (localhost:8080)${NC}" diff --git a/go.mod b/go.mod index 9e9ecf0..f11aae2 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,5 @@ go 1.21 require ( github.com/go-chi/chi/v5 v5.0.10 github.com/go-chi/cors v1.2.1 - github.com/google/uuid v1.6.0 github.com/gorilla/websocket v1.5.3 ) diff --git a/internal/models/models.go b/internal/models/models.go deleted file mode 100644 index 2e33906..0000000 --- a/internal/models/models.go +++ /dev/null @@ -1,56 +0,0 @@ -package models - -import ( - "time" - - "github.com/gorilla/websocket" -) - -// WebRTCOffer WebRTC offer 结构 -type WebRTCOffer struct { - SDP string `json:"sdp"` - Type string `json:"type"` -} - -// WebRTCAnswer WebRTC answer 结构 -type WebRTCAnswer struct { - SDP string `json:"sdp"` - Type string `json:"type"` -} - -// WebRTCICECandidate ICE candidate 结构 -type WebRTCICECandidate struct { - Candidate string `json:"candidate"` - SDPMLineIndex int `json:"sdpMLineIndex"` - SDPMid string `json:"sdpMid"` -} - -// VideoMessage 视频消息结构 -type VideoMessage struct { - Type string `json:"type"` - Payload interface{} `json:"payload"` -} - -// ClientInfo 客户端连接信息 -type ClientInfo struct { - ID string `json:"id"` // 客户端唯一标识 - Role string `json:"role"` // sender 或 receiver - Connection *websocket.Conn `json:"-"` // WebSocket连接(不序列化) - JoinedAt time.Time `json:"joined_at"` // 加入时间 - UserAgent string `json:"user_agent"` // 用户代理 -} - -// RoomStatus 房间状态信息 -type RoomStatus struct { - Code string `json:"code"` - SenderOnline bool `json:"sender_online"` - ReceiverOnline bool `json:"receiver_online"` - CreatedAt time.Time `json:"created_at"` -} - -// ErrorResponse 错误响应结构 -type ErrorResponse struct { - Success bool `json:"success"` - Message string `json:"message"` - Code string `json:"code,omitempty"` -} diff --git a/internal/web/static.go b/internal/web/static.go deleted file mode 100644 index 55a7a8a..0000000 --- a/internal/web/static.go +++ /dev/null @@ -1,52 +0,0 @@ -package web - -import ( - "embed" - "io/fs" - "net/http" -) - -// 嵌入静态文件 -// -//go:embed all:static -var StaticFiles embed.FS - -// StaticFileServer 创建静态文件服务器 -func StaticFileServer() http.Handler { - // 获取嵌入的文件系统 - staticFS, err := fs.Sub(StaticFiles, "static") - if err != nil { - panic(err) - } - - return http.FileServer(http.FS(staticFS)) -} - -// FrontendFileServer 创建前端文件服务器 -func FrontendFileServer() http.Handler { - return &frontendHandler{} -} - -// frontendHandler 处理前端文件请求,支持 SPA 路由 -type frontendHandler struct{} - -func (h *frontendHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - // 返回一个简单的占位页面 - w.Header().Set("Content-Type", "text/html; charset=utf-8") - w.WriteHeader(http.StatusOK) - w.Write([]byte(` - - - - 文件传输 - - - -

文件传输服务

-

前端文件未嵌入,请先构建前端项目。

-

运行以下命令构建前端:

-
cd chuan-next && yarn build:ssg
- - - `)) -}