构建基于 Socket.IO 的实时聊天应用
1. 技术探索与选择
在数据检索和更新方面,GraphQL 作为 REST 服务的替代方案,展现出了诸多优势。我们研究了将 Apollo 搭建为服务器端的 GraphQL 引擎,并将其集成到 Angular 客户端中,以实现与服务器的交互,同时还学习了专业的 GQL 查询语言。为了充分发挥 TypeScript 的强大功能,引入了 type - graphql 包,简化了 GraphQL 模式和解析器的创建过程。
除了数据交互技术,我们还探索了 Angular 路由,根据用户选择的路由提供不同的视图。并且持续使用 Material 设计,以便将相关逻辑应用到界面导航中。同时,借助 Angular 提供的验证功能,结合内联模板,为用户输入提供一致的反馈,避免用户犯错。
2. 长连接通信技术需求
以往客户端与服务器的通信方式,大多依赖用户的某种交互来触发数据传输,如点击链接或按钮。然而,在某些场景下,我们希望客户端与服务器之间保持永久的通信连接,以便数据一旦可用就能立即推送。例如在线游戏中,我们不希望玩家每次获取其他玩家状态更新都要手动操作。
多年来,为解决这一问题,出现了多种技术。像 flash sockets 这类依赖专有系统的技术已逐渐被淘汰。如今,WebSocket 成为了主流标准,各大浏览器均支持该协议。值得注意的是,WebSocket 与 HTTP 是协同工作的协议,HTTP 使用 HTTP 或 HTTPS 标识协议,而 WebSocket 则使用 WS 或 WSS(WebSocket Secure)作为协议标识符。
在 Node.js 领域,Socket.IO
超级会员免费看
订阅专栏 解锁全文
1651

被折叠的 条评论
为什么被折叠?



