基于Next.js 14与Supabase构建全栈社交平台:技术架构与核心实现

news2026/5/3 4:12:28
1. 项目概述一个现代全栈社交平台的构建实录最近在GitHub上看到一个挺有意思的项目叫SocialConnect。这本质上是一个用Next.js 14、TypeScript、Supabase和Tailwind CSS构建的现代社交平台。我花了不少时间研究它的代码和设计发现它确实把当前前端生态里几个最火的技术栈结合得相当不错实现了一套从用户认证、动态发布、实时互动到隐私管理的完整功能。对于想学习如何用Next.js App Router和Supabase构建全栈应用的朋友来说这个项目是个非常棒的参考案例。它不像很多教程项目那样只做个“玩具”而是涵盖了生产级应用需要考虑的很多细节比如行级安全策略、实时订阅、图片上传优化和分页加载。接下来我就结合自己的开发经验把这个项目的核心设计思路、关键技术实现以及我在复现和扩展过程中踩过的坑系统地梳理一遍希望能给正在构建类似应用的你一些实实在在的启发。2. 技术栈选型与架构设计解析2.1 为什么是Next.js 14 Supabase这个组合看到这个技术栈的第一眼我就觉得选型很精准。Next.js 14的App Router和React Server Components为构建高性能、SEO友好的应用提供了新范式而Supabase则提供了一个开箱即用的BaaS后端即服务完美解决了身份验证、实时数据库和文件存储这些繁琐的后端问题。这个组合最大的优势在于它让一个前端开发者或小团队也能快速搭建起一个功能复杂、体验现代的应用而无需深入后端基础设施的运维。Next.js 14的核心价值项目充分利用了App Router的嵌套布局、服务端组件和流式渲染。比如用户个人资料页可能是服务端渲染的确保了首次加载速度和SEO而动态的帖子流和实时通知则通过客户端组件和Supabase的实时订阅来实现交互性。这种混合渲染策略是当前构建复杂Web应用的最佳实践。另外Next.js内置的Image组件对图片的自动优化和懒加载对于社交平台这种图片密集型应用至关重要能显著提升性能并节省带宽。Supabase的定位与优势Supabase在这里扮演了“全栈引擎”的角色。它的Auth服务直接替代了需要自研的JWT认证系统PostgreSQL数据库提供了强大的关系型数据管理能力结合行级安全策略可以在数据库层面就实现精细的数据访问控制Storage服务用于头像和帖子图片的存储Realtime功能则让实现“某某点赞了你的帖子”这种实时通知变得异常简单。我实测下来用这套组合开发至少能节省40%以上的后端开发时间让你更专注于业务逻辑和用户体验。2.2 前端UI与样式方案Tailwind CSS shadcn/ui项目选择了Tailwind CSS作为样式方案这在意料之中。它的实用类优先Utility-First理念特别适合需要高度定制化UI的组件开发能极大提升开发效率。但纯Tailwind写复杂组件有时会显得冗长所以项目又引入了shadcn/ui。shadcn/ui的妙用shadcn/ui不是一个传统的npm组件库而是一套你可以直接复制到项目里的高质量组件代码。这意味着你对组件有完全的掌控权可以随意修改以满足设计需求同时又避免了从零开始构建基础组件如按钮、对话框、下拉菜单的重复劳动。SocialConnect项目里那些看起来精致且交互一致的UI元素比如模态框、下拉菜单、Toast提示很大程度上都得益于此。这种“可控的复用”策略在追求独特产品调性的同时又没有牺牲开发效率。2.3 类型安全与开发体验TypeScript的严格实践整个项目采用TypeScript并开启了严格模式strict: true。这对于一个中型以上、多人协作的项目来说是必须的。它能在编译阶段就捕获大量潜在的错误比如访问可能为undefined的属性或者函数参数类型不匹配。在SocialConnect中从API请求/响应的类型、数据库表结构的类型定义可以通过Supabase CLI自动生成到React组件的Props和状态都享受到了完整的类型提示。这虽然增加了前期定义类型的成本但在代码重构和功能扩展时带来的安全感和效率提升是巨大的相当于一个全天候的代码审查助手。3. 核心功能模块深度实现剖析3.1 用户认证与会话管理基于Supabase Auth的实践认证是任何社交应用的基石。SocialConnect使用Supabase Auth处理所有认证流程包括邮箱/密码注册登录、会话持久化和JWT管理。关键实现细节客户端集成在lib/supabase/client.ts中初始化Supabase客户端并确保在客户端组件中安全使用。这里需要注意用于客户端操作的supabaseClient必须使用NEXT_PUBLIC_SUPABASE_ANON_KEY这个密钥的权限被RLS策略严格限制。服务端认证对于需要在服务端获取用户信息的场景如在API Route或Server Component中项目使用了createRouteHandlerClient或createServerComponentClient。这些辅助函数能安全地读取请求中的Cookie获取用户会话。自定义用户表ProfilesSupabase Auth的auth.users表是内置的通常我们还需要一个public.profiles表来存储用户名、头像URL、个人简介等业务信息。SocialConnect在用户注册后通过数据库触发器或Edge Function自动在profiles表中创建对应记录。这是一个经典模式确保了认证用户和业务用户数据的同步。实操心得在开发时务必在Supabase仪表盘中仔细配置“电子邮件确认”、“密码重置”等Auth流程的跳转URLRedirect URLs包括本地开发环境如http://localhost:3000/auth/callback和生产环境。否则认证回调会失败。另外将用户角色如is_admin存储在profiles表而非JWT声明中更灵活但需要在服务端额外查询。3.2 动态帖子系统创建、展示与交互帖子是内容的载体。这个模块涉及富文本或纯文本输入、图片上传、列表渲染、分页和点赞评论交互。图片上传的优化处理 项目使用Supabase Storage来存储帖子图片。前端上传流程通常是这样// 1. 前端选择文件并验证类型、大小 if (file.size 2 * 1024 * 1024) throw new Error(文件需小于2MB); if (![image/jpeg, image/png].includes(file.type)) throw new Error(仅支持JPG/PNG); // 2. 生成唯一文件名避免冲突 const fileExt file.name.split(.).pop(); const fileName ${userId}/${Date.now()}.${fileExt}; // 3. 上传到Supabase Storage的特定Bucket如post-images const { data, error } await supabase.storage .from(post-images) .upload(fileName, file); // 4. 获取公开访问URL并存入posts表的image_url字段 const publicUrl supabase.storage.from(post-images).getPublicUrl(fileName).data.publicUrl;这里的关键是Storage Bucket的权限要设置正确上传需要认证私有的而读取可以是公开的如果帖子是公开的或者通过签名的URL来提供有时间限制的私有访问。无限滚动与分页 为了提升Feed流体验项目实现了无限滚动。核心是使用一个自定义Hook如useFeed它内部使用SWR或TanStack Query来管理数据状态并结合Intersection Observer API监听页面底部的一个“哨兵”元素。当哨兵进入视口时触发加载下一页数据的函数。分页逻辑通常在API层面实现使用PostgreSQL的LIMIT和OFFSET或者更优的基于游标的分页使用created_at时间戳和ID。3.3 实时通知系统Supabase Realtime的典型应用实时通知是提升用户参与度的利器。SocialConnect利用Supabase的Realtime功能监听数据库的特定变化。实现机制数据库表设计有一个notifications表字段包括id,user_id接收者,actor_id触发者,type‘like’, ‘comment’, ‘follow’,post_id可选,read,created_at等。触发创建通知当发生点赞、评论、关注行为时在服务器端Next.js API Route或通过数据库触发器向notifications表插入一条新记录。前端实时订阅客户端组件如通知图标初始化一个Supabase实时订阅。useEffect(() { const channel supabase .channel(notifications:${userId}) // 为用户创建专属频道 .on( postgres_changes, { event: INSERT, schema: public, table: notifications, filter: user_ideq.${userId}, }, (payload) { // 收到新通知更新本地状态如未读计数、通知列表 setNotifications(prev [payload.new, ...prev]); setUnreadCount(prev prev 1); } ) .subscribe(); return () { supabase.removeChannel(channel); // 组件卸载时清理订阅 }; }, [userId, supabase]);这样任何插入到该用户notifications表的新记录都会实时推送到前端实现“秒级”通知更新。注意事项实时订阅会保持WebSocket连接对服务器资源和用户设备电量都有消耗。务必在组件卸载时正确清理订阅。对于非活跃标签页可以考虑节流或暂停订阅。Supabase的免费计划对同时连接数有限制上线前需评估。3.4 隐私控制系统从数据库到UI的完整链路隐私控制是社交平台的核心功能之一。SocialConnect设计了public、private、followers_only三种可见性。数据库层面的控制RLS 这是最根本、最安全的一环。在Supabase中为posts和profiles表启用RLS并编写策略Policies。例如对于posts表-- 公开帖子所有人都可读 CREATE POLICY Public posts are viewable by everyone ON posts FOR SELECT USING (visibility public); -- 仅粉丝可见的帖子只有关注者可以读 CREATE POLICY Followers-only posts are viewable by followers ON posts FOR SELECT USING ( visibility followers_only AND EXISTS ( SELECT 1 FROM follows WHERE follower_id auth.uid() AND following_id posts.user_id ) ); -- 私密帖子只有作者自己可读 CREATE POLICY Private posts are viewable by owner only ON posts FOR SELECT USING (visibility private AND user_id auth.uid());auth.uid()是Supabase Auth提供的函数在查询时会自动替换为当前登录用户的ID。这样无论前端代码怎么写用户都无法绕过数据库直接查询到无权访问的数据。业务逻辑层的封装 前端需要根据当前用户与目标用户/帖子的关系以及隐私设置来决定是否展示内容、展示多少内容。项目抽象了一个usePrivacyCheck的Hook它接收一个targetUserId返回诸如canViewProfile、canViewPosts等布尔值方便组件条件渲染。这个Hook内部需要查询数据库或检查本地状态来判断关注关系。4. 数据库设计与性能优化策略4.1 核心表结构设计精讲项目的database-schema.sql提供了基础表结构。我们在此基础上深入探讨几个关键设计点用户关系关注的建模follows表通常设计为follower_id和following_id的复合主键并建立对users表的外键约束。为了快速获取粉丝数和关注数可以在users表上设置followers_count和following_count字段作为缓存。这些计数器的更新可以通过数据库触发器Trigger在follows表增删时自动完成确保强一致性。虽然这增加了写操作的开销但极大地优化了读性能显示数字时无需实时COUNT关联表。帖子与互动表posts表除了内容还应包含visibility、like_count、comment_count等衍生字段。likes和comments表分别记录点赞和评论。同样like_count的维护也推荐使用触发器。对于评论可以考虑嵌套集模型或路径枚举模型来实现层级回复但这会显著增加复杂度。对于初期一个带parent_comment_id的自关联设计可能更简单。4.2 查询优化与索引策略随着数据增长Feed流查询可能成为瓶颈。典型的Feed查询需要关联posts、users并可能过滤follows关系。一个优化的Feed查询示例-- 假设我们要获取当前用户关注的人的公开帖子按时间倒序分页 SELECT p.*, u.username, u.avatar_url FROM posts p JOIN users u ON p.user_id u.id WHERE p.user_id IN ( SELECT following_id FROM follows WHERE follower_id $1 ) AND p.visibility IN (public, followers_only) -- 对于粉丝可见公开和粉丝可见帖子 ORDER BY p.created_at DESC LIMIT 20 OFFSET 0;为了加速这个查询需要创建索引posts(user_id, created_at DESC)复合索引加速按用户和时间排序的查询。follows(follower_id, following_id)加速关注关系的查找。posts(visibility)如果隐私状态类型很少这个索引也有帮助。关于分页的深度思考使用LIMIT/OFFSET在深度分页时如OFFSET 10000性能很差因为数据库需要先扫描并跳过前10000行。更好的方法是使用“游标分页”Cursor-based Pagination基于上一页最后一条记录的created_at和id进行查询WHERE (created_at, id) ($lastCreatedAt, $lastId) ORDER BY created_at DESC, id DESC LIMIT 20。这需要在前端传递游标并在对应的(created_at, id)上建立索引。4.3 实时订阅的性能考量Supabase Realtime的工作原理是监听PostgreSQL的复制日志WAL。虽然很方便但过度订阅或监听过于宽泛的变化如*会给数据库和Realtime服务带来压力。最佳实践是精细化订阅使用filter将订阅范围缩小到特定行如user_ideq.xxx。按需订阅只在需要的页面或组件如通知栏开启订阅并在离开时立即清理。考虑替代方案对于非核心的实时性要求如在线状态可以采用定期轮询Polling或长轮询Long Polling作为降级方案以减轻服务器负担。5. 前端状态管理与组件架构5.1 混合状态管理策略SocialConnect没有使用Redux或Zustand这类全局状态管理库而是采用了Next.js和React推荐的分层状态管理策略服务器状态由TanStack Query或SWR管理。这些状态来自API如帖子列表、用户资料。它们具有缓存、后台刷新、分页加载等特性。项目中的useFeed、useNotifications等自定义Hook内部很可能就是基于这些库构建的。客户端UI状态使用React的useState、useReducer或Context。例如一个模态框的打开/关闭状态、表单的输入值、下拉菜单的选择等。URL状态通过Next.js的useSearchParams或useRouter管理。例如Feed的当前过滤条件如“热门”、“最新”、用户个人资料页的标签页如“帖子”、“回复”都可以反映在URL查询参数中便于分享和刷新保持状态。服务端状态在Server Component中直接通过await从数据库或API获取数据然后作为Props传递给客户端组件。这是Next.js 14的最大优势之一简化了数据获取逻辑。这种“按需选用”的策略避免了单一全局状态库的复杂度让状态管理更清晰、更高效。5.2 可复用组件设计与shadcn/ui的集成项目采用模块化的组件结构。以一个PostCard组件为例它可能由更基础的UI组件构成Card、Avatar、Button来自shadcn/ui提供了基础的样式和交互。LikeButton是一个封装了点赞逻辑包括点击动画、调用API、更新计数的复合组件。CommentSection可能是一个可折叠的区域内部包含CommentList和CommentForm。这种组合方式既保证了设计的一致性又让业务逻辑组件可以独立开发和测试。在集成shadcn/ui时我建议通过其CLInpx shadcn-uilatest add button card ...添加组件这样能确保获得最新且与项目Tailwind配置兼容的代码。6. 部署、安全与监控实践6.1 从开发到生产Vercel部署详解项目推荐部署到Vercel这确实是Next.js应用的首选因为两者同出一源集成度最高。部署步骤细化环境变量配置在Vercel项目的Settings - Environment Variables中添加生产环境的NEXT_PUBLIC_SUPABASE_URL、NEXT_PUBLIC_SUPABASE_ANON_KEY和NEXT_PUBLIC_APP_URL。切勿将.env.local文件提交到仓库。构建配置Next.js 14默认使用TurboPack进行构建在next.config.js中可配置。确保在本地npm run build能成功解决所有TypeScript错误和ESLint警告。数据库迁移生产环境的数据库Schema需要与开发环境同步。可以使用Supabase的迁移工具如supabase db diff和supabase db push或手动运行SQL脚本来管理。域名与HTTPSVercel提供自动的SSL证书。绑定自定义域名后确保在Supabase Auth的重定向URL设置中添加生产环境的域名如https://yourdomain.com/auth/callback。踩坑记录有一次部署后图片上传功能在生产环境失效。排查发现是Supabase Storage的CORS跨源资源共享设置只配置了本地开发地址http://localhost:3000。必须在Supabase仪表盘的Storage - Policies中为对应的Bucket添加生产环境的域名到CORS配置中。这是一个非常容易遗漏的点。6.2 安全加固清单除了项目提到的RLS、输入验证等还有一些额外的安全考量API速率限制防止暴力破解和滥用。可以在Next.js API Routes中使用rate-limiter-flexible等库或直接在Vercel边缘函数、Supabase Edge Functions中配置。CSP头部内容安全策略能有效缓解XSS攻击。可以在next.config.js中配置headers函数来添加CSP规则。敏感信息保护确保NEXT_PUBLIC_SUPABASE_ANON_KEY虽然是公开的但其对应的RLS策略足够严格。更敏感的操作如删除用户、修改权限必须使用Supabase的service_role密钥且该密钥绝不能暴露给前端只能在服务器端环境变量或安全的Edge Function中使用。文件上传安全除了检查文件类型和大小在服务器端如Next.js API Route对图片进行二次验证如使用sharp库读取文件头更保险。防止用户上传伪装成图片的恶意文件。6.3 性能监控与错误追踪应用上线后需要观察其表现。核心Web指标利用Vercel自带的Analytics或接入Google Lighthouse CI监控LCP最大内容绘制、FID首次输入延迟、CLS累积布局偏移等指标。前端错误追踪使用Sentry或LogRocket等工具捕获前端JavaScript运行时错误并记录用户操作路径便于复现问题。后端日志Supabase提供了详细的数据库日志和函数日志。Next.js应用部署在Vercel上其函数日志可以在Vercel仪表板中查看。对于关键业务逻辑可以添加结构化的日志输出。数据库监控关注Supabase仪表板中的数据库CPU、内存使用率、慢查询和连接数。为复杂查询设置索引并定期使用EXPLAIN ANALYZE分析查询计划。7. 项目扩展方向与进阶思考SocialConnect提供了一个坚实的起点但一个成熟的社交平台还有很长的路要走。以下是一些可能的扩展方向全文搜索当前搜索可能只是简单的数据库LIKE查询。集成Elasticsearch、MeiliSearch或Supabase的全文搜索扩展pg_trgm可以提供更强大、更快速的搜索体验支持模糊匹配、高亮和相关性排序。消息系统实现用户间的私信功能。这需要新的conversations和messages表并利用Supabase Realtime实现聊天界面的实时收发。复杂度在于消息的已读状态、离线推送可能需要集成第三方服务如Firebase Cloud Messaging和消息历史管理。内容推荐算法从简单的“关注者时间线”进化到个性化推荐。可以基于用户互动点赞、评论数据使用协同过滤或内容相似度算法在Feed中混合插入“你可能感兴趣”的帖子。初期可以从简单的“热门帖子”按点赞数、评论数加权开始。多媒体内容支持从图片扩展到短视频、GIF、音频。这涉及到更复杂的上传处理分片上传、转码FFmpeg服务、存储和流媒体播放使用video标签或第三方播放器。移动端应用利用React Native或Expo可以复用大部分业务逻辑和TypeScript类型定义快速构建出原生移动应用通过Supabase的JS SDK与同一后端通信。这个项目最宝贵的价值在于它清晰地展示了一个现代Web应用从技术选型、模块设计、安全实践到部署上线的完整闭环。它用实际代码告诉你在2024年如何用最主流、最高效的工具链去构建一个真实可用的产品原型。无论你是想学习全栈开发还是为自己的创业想法搭建一个MVP仔细研究并动手实践这个项目都会让你受益匪浅。我在复现和改造的过程中对Next.js的服务端组件边界、Supabase RLS策略的编写、以及实时系统的状态同步都有了更深的理解。技术栈是不断演进的但其中蕴含的模块化设计、安全优先和用户体验驱动的思想是长久不变的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2577112.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…