首页 > 解决方案 > 在 Angular 中刷新页面。Socket.io 问题

问题描述

我的聊天网络应用程序使用带有 RxJS 的 socket.io;为了拥有“持久”套接字,我在服务构造函数中创建了 socket.io 客户端;一切正常,但如果用户刷新(F5 / Cmd-R)应用程序,客户端套接字将重新创建,旧的套接字将被销毁。有没有办法避免它,维护相同的 socket.io 客户端?

标签: angularsocket.iorxjs

解决方案


每当刷新页面时,该页面消耗的所有内存都将被删除,因此上下文将丢失,所有对象实例也将丢失这就是为什么无法在刷新时保留套接字客户端实例的原因。如果您想以某种方式在浏览器会话中跟踪同一用户,您可以在第一次将其保存到sessionStorage时生成一些唯一的 Id, 然后将其传递给套接字初始化时的查询参数。通过该 ID,您将能够在浏览器会话中识别此用户


推荐阅读