前端小白想问,js如何实现,服务器一断开,页面就提示505

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端小白想问,js如何实现,服务器一断开,页面就提示505相关的知识,希望对你有一定的参考价值。

现有项目是nodejs的,我发现计时nodejs的服务关闭了,页面也可以显示。有什么办法能像断网一样,服务器一关闭,页面立刻不能用?求问大神

给你个思路抛板砖引小玉,既然你提到服务器挂掉这种极端恶劣条件,因为服务器挂掉或者不响应自身是无从知晓的,所以只能靠第三方来判断,套路就是,客户端发个长连接或websocket连接到第三方页面,只要独立于目标服务器即可,可以同站,这个页面负责检查目标服务器是否可用,方法也有不少,如果websocket运用纯熟可以做到,简单点,ping也可以,或者服务器定时20秒写一次日志,检查日志是否中断,等等。如果发现服务器有故障就反馈回客户端跳转505页面 参考技术A 前端可以定期发送请求看看后台是否还在运行,页面根据请求结果做处理。追问

谢谢,我是想让页面报错,就像断网一样,提示页面飞走了这样的立刻在客户端有反应,
现状是只要页面不刷新,服务器断开又连上对页面没有影响

参考技术B 需要服务器知识追问

谢谢回答

参考技术C 后端用了nginx吧?追问

谢谢回答,对的用了。目前我是想让页面报错,就像断网一样,提示页面飞走了这样的立刻在客户端有反应,
现状是只要页面不刷新,服务器断开又连上对页面没有影响

追答

这个需求是不划算的。你可以用socket或定时器去判断服务是否已断开,如果断开了,就跳转到页面飞走了的页面

追问

明白了,感谢

本回答被提问者采纳

如何通过离开页面处理客户端断开的socket.io?

【中文标题】如何通过离开页面处理客户端断开的socket.io?【英文标题】:How to handle socket.io disconnect by client by leaving page? 【发布时间】:2014-12-29 22:00:10 【问题描述】:

我有一个socket.io applicationnode.js,我想知道有什么可能性可以响应客户只需关闭他们的浏览器窗口。无论如何都知道这已经完成了吗?可以向服务器发送什么样的信号?

如果我无法判断特定客户端是否已断开连接,我还能做什么?

【问题讨论】:

【参考方案1】:

当客户端关闭其浏览器窗口时,socket.io 会触发一个特殊的“断开连接”事件。

假设您的节点服务器文件中需要 socket.io

var io = require('socket.io');

然后你可以监听每个socket触发的'disconnect'事件:

io.on('connection', function(socket)
  console.log('a user connected');
  socket.on('disconnect', function()
    console.log('user disconnected');
  );
);

注意 - 这里的套接字由:

io.on('connection', function(socket)
  console.log('a user connected');
);

来源:http://socket.io/get-started/chat/

【讨论】:

【参考方案2】:

我有一个带有 node.js 的 socket.io 应用程序,我想知道有什么可能性可以响应客户端只需关闭浏览器窗口。无论如何都知道这已经完成了吗?可以向服务器发送什么样的信号?

当浏览器关闭连接时,您在 node.js 端的套接字将收到一个“断开连接”事件,然后您可以对此做出反应。

【讨论】:

【参考方案3】:

您想在卸载触发器中通过套接字触发消息。

<body onunload="sendBrowserClosedMessageToServer()">

或者随便你怎么称呼你的钩子。

【讨论】:

以上是关于前端小白想问,js如何实现,服务器一断开,页面就提示505的主要内容,如果未能解决你的问题,请参考以下文章

python小白 想问以下代码是如何实现base64解码的

前端请求的js,css只加载一部分就断开连接, 静态文件加载不全

我想问一下如何获取ajax传过来的数据,比如在.cs或者在jsp页面获取ajax传过来的数据,然后写入数据库。

vue实现登陆注册功能(小白篇)

前端框架-- Node.js从小白起步

前端登陆实现