当前位置: 首页 > 知识库问答 >
问题:

springboot - 频繁创建websocket会导致后端很多僵尸session吗?

朱欣荣
2023-06-14

后端使用 springboot ,前端页面定时检测 websocket 是否在线,如果不在线则 new WebSocket(url),如果断线很频繁会不会导致后端有很多僵尸 session 进而导致内存泄漏?如果有这种问题要如何解决?

共有2个答案

闾丘英悟
2023-06-14

尝试下绑定websocket的onerror或closeg事件

钱运浩
2023-06-14

后端

@ServerEndpoint("/websocket/{name}")
@OnOpen
public void onOpen(Session session, @PathParam(value = "name") String name)

前端

ws = new WebSocket("ws://127.0.0.1:8080/websocket/" + name);

以name为key,session为value存放至map中,onOpen先根据name getSession如果有,session.close()关闭之前的连接,再放到map中

 类似资料:
  • 僵尸进程 当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。 理解了孤儿进程和僵尸进程,我们临时加了守护进程这一小节,守护进程就是后台进程吗?没那么简单。

  • 僵尸增量是一款放置游戏,你需要控制一群僵尸破坏小镇...

  • 问题内容: 我是模块的新手。我只是尝试创建以下内容:我有一个工作是从RabbitMQ获取消息并将其传递到内部队列()。然后,我想做的是:在收到新消息时生成一个进程。它可以工作,但是在完成工作后,它留下了一个僵尸进程,不会被其父进程终止。这是我的代码: 主要过程: 这是我的工人: 因此,在处理完所有消息之后,我可以看到带有命令的进程。但是我真的希望它们一旦完成就可以终止。谢谢。 问题答案: 有两件事

  • 我确实读过这篇文章:https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/ 设置一些上下文:这篇文章是关于容器中的僵尸问题的,它试图说服我们这是一个真正的问题。 总的来说,我有复杂的感觉。为什么这很重要?毕竟,即使是在conainer主机操作系统中的僵尸能够释放/杀死这个僵尸的情况下。我们知道容

  • 该款植物大战僵尸是一款基于pygame的射击版防守游戏。简单易玩,很容易上手,一般射击类游戏,都可以采用该款游戏的框架。 游戏界面如下: 游戏人物介绍:              荷兰豆  玩家的代表,作用发射寒冰弹。用于阻止僵尸越过边界,攻入城堡             辐射丧尸  一种快速移动的丧尸,能够大量集结,快速突破玩家的防守      病毒丧尸 一种慢速移动的丧尸,但作为辐射丧尸的旁系

  • 我正在和一个队友讨论锁定.NET的问题。他是一个非常聪明的人,在低级和高级编程方面都有广泛的背景,但他在低级编程方面的经验远远超过我。无论如何,他认为,如果可能的话,应该避免在预期处于重载下的关键系统上进行.NET锁定,以避免“僵尸线程”使系统崩溃的可能性很小。我经常使用锁定,我不知道什么是“僵尸线程”,所以我问。我从他的解释中得到的印象是,僵尸线程是一个已经终止但不知怎么还保留着一些资源的线程。