chatterbox
1.0.0
Chatterbox是一個使用Next 13和Pusher構建的實時消息應用程序。
您可以創建組聊天或啟動DM。用戶可以發送短信或上傳多個視頻或圖像。
UI實時更新。意味著當另一個用戶創建頻道或發送消息時,您將立即看到更新。
部署在Vercel上:https://chatterboxes.vercel.app/
該項目使用新的Next.js 13應用程序路由器,React服務器組件,服務器操作,懸疑和React 18的cache()
我們還利用API路由(將其部署為Vercel的無服務器功能部署到Vercel),例如註冊新用戶,創建消息等。
每當用戶發送消息,創建聊天或在線上市時,所有其他用戶都會收到通知,其UI將在實時更新。
這是用推送器完成的。我們會收聽諸如message:new
或chat:update
類的事件。當用戶做出操作時,我們在服務器上觸發事件,其他用戶的偵聽將接收更新。
除了聆聽和触發事件外,推動器的存在頻道還用於使每個用戶當前在線。
當用戶登錄時,我們從Pusher中獲取每個活動用戶,並將其存儲在本地Jotai商店中。當用戶登錄或註銷時,Pusher會發送更新,然後我們本地更新Jotai商店。
該項目用打字稿編寫,並使用Prisma生成的類型和ZOD模式和類型來確保整個代碼庫中的類型AFETY。由於Prisma自動生成類型,因此我們很少需要聲明或維護任何類型。
zod
用於驗證每個形式的客戶端,以確保在進行任何API調用或突變之前確保值正確。
在服務器上,每個API路由還具有ZOD驗證,以確保輸入有效,並在繼續之前對應於ZOD模式。
ESLINT還配置了嚴格的規則,以確保代碼質量並最大程度地減少錯誤。
nodemailer
密碼流