WebSocket开发过程中遇到的几个小问题
2017-06-05 10:59
267 查看
问题一:WebSocket连接后一分钟自动断开关闭
这是因为websocket长连接有默认的超时时间(1分钟,由proxy_read_timeout决定),就是超过一定的时间没有发送任何消息,连接会自动断开。解决办法就是让浏览器每隔一定时间(要小于超时时间)发送一个心跳。代码如下:
window.setInterval(function(){ //每隔5秒钟发送一次心跳,避免websocket连接因超时而自动断开
var ping = {"type":"ping"};
ws.send(JSON.stringify(ping));
},5000);
问题二:聊天内容超出聊天框高度时,滚动条不能自动滑动到底部
解决办法:
假定聊天框是
<div id="scrollDiv" style="overflow:auto; height: 400px; width: 600px;"></div>
添加一条消息
var scrollDiv = document.getElementById('scrollDiv');
scrollDiv.innerHTML += '增加一条聊天消息<br />';
scrollDiv.scrollTop = scrollDiv.scrollHeight; //关键是这个
这是因为websocket长连接有默认的超时时间(1分钟,由proxy_read_timeout决定),就是超过一定的时间没有发送任何消息,连接会自动断开。解决办法就是让浏览器每隔一定时间(要小于超时时间)发送一个心跳。代码如下:
window.setInterval(function(){ //每隔5秒钟发送一次心跳,避免websocket连接因超时而自动断开
var ping = {"type":"ping"};
ws.send(JSON.stringify(ping));
},5000);
问题二:聊天内容超出聊天框高度时,滚动条不能自动滑动到底部
解决办法:
假定聊天框是
<div id="scrollDiv" style="overflow:auto; height: 400px; width: 600px;"></div>
添加一条消息
var scrollDiv = document.getElementById('scrollDiv');
scrollDiv.innerHTML += '增加一条聊天消息<br />';
scrollDiv.scrollTop = scrollDiv.scrollHeight; //关键是这个
相关文章推荐
- 【总结】EJB开发过程中遇到的几个问题
- SSH网上商店开发过程中遇到的几个问题。
- Web开发基础--WebService调试过程中遇到的几个问题
- dwz问题(本文主要是供个人学习成长之用,陈述的是本人在开发过程中遇到的几个小问题的总结,可能兼或插入一些网络资料)
- 分享嵌入式开发使用过程中遇到的几个问题(MQX4.2,IAR,Kinetis K66)
- 开发键盘过滤驱动实现模拟按键过程中遇到的问题___续
- [全程建模]全程建模/软件开发过程中的几个常见问题对话
- php开发中遇到的几个不知道原因的问题
- 框架使用过程中遇到的几个问题
- 项目开发过程中遇到的一些问题和解决办法(逐渐添加)
- 在nhibernate使用过程中遇到的几个问题02
- 开发过程中遇到的问题总结
- JSP开发中遇到的几个小问题
- eclipse 插件开发过程中遇到的一堆问题(急待解决)
- 学习ASP过程中,遇到的几个问题
- 我在开发AJAX过程中遇到的问题及解决方案,分享给大家~
- 软件开发过程中的几个问题
- 开发自动完成功能中遇到的几个问题---javascript+XMLHTTP+DOM
- 开发过程中遇到的问题总结
- 开发过程遇到的无法打包问题的解决!