前后端如何保持长连接?---websocket
1. pc端的应用,一般会采用前端定时请求后台;
2. app定时去访问后台的话,对用户来说并不友好,会消耗大量的流量,移动端最好的方式就是后台主动向app推送信息;
3. H5提供了一种比较好的方式是websocket,打开app后,向后台发出请求,后台响应后,就可以实时向前端推送信息了,而无需app再次去访问;
4.websocket的前端实现方法:
websocket = null;
url="127.xxxxxxx/xxx"
var websocketAddress = 'ws://'+ url ;
//判断当前浏览器是否支持WebSocket
if('WebSocket' in window){
websocket = new WebSocket(websocketAddress);
}
else{
alert('当前浏览器不支持WebSocket')
}
//连接发生错误的回调方法
websocket.onerror = function(){
//notificationReminder("错误");
};
//连接成功时的回调方法
websocket.onopen = function(event){
console.log(event);
}
//接收到消息的回调方法
websocket.onmessage = function(event){
$scope.notificationReminder(event.data);
}
//连接关闭的回调方法
websocket.onclose = function(){
//notificationReminder("关闭");
}
//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
window.onbeforeunload = function(){
websocket.close();
}
//发送消息
$scope.send = function(){
websocket.send(localStorageService.get('UserID'));
}
$scope.closeWebSocket = function(){
websocket.close();
}
前后端如何保持长连接?---websocket的更多相关文章
- 长连接  Websocket
		
import json from flask import Flask,request,render_template from geventwebsocket.handler import WebS ...
 - 了解轮询、长轮询、长连接、websocket
		
业务开发中我们往往会有一些需要即时通信的场景,比如微信扫码登录.聊天功能. 下面这四种方式都可以实现即时通信. 轮询: 浏览器通过定时器每隔一段时间向服务器端发送请求,服务器端收到请求并响应请求.没有 ...
 - 基于TCP/IP的长连接和短连接
		
1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...
 - TCP 长连接与短连接的区别
		
TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的 ...
 - TCP长连接与短连接的区别
		
http://www.cnblogs.com/liuyong/archive/2011/07/01/2095487.html 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,se ...
 - [转载] TCP长连接与短连接的区别
		
转载自http://www.cnblogs.com/liuyong/archive/2011/07/01/2095487.html 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前 ...
 - UNIX网络编程——TCP长连接与短连接的区别
		
一.TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接.client向server发送消息,server回应client,然后 ...
 - TCP长连接与短连接、心跳机制
		
1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...
 - Nginx反向代理与Backend直接配置长连接
		
使用了Nginx的反向代理配置如下: upstream test{ keepalive 1; server 192.168.1.63:4000; } server { listen 4000; ser ...
 
随机推荐
- SAP PI
			
PI功能很是强大,且系统很稳定. 1.什么是PI PI = Process IntegrationSAP PI是一项集成的技术和平台 1.为sap和non-sap之间提供集成 2.为A2A ...
 - 使用python+hadoop-streaming编写hadoop处理程序
			
Hadoop Streaming提供了一个便于进行MapReduce编程的工具包,使用它可以基于一些可执行命令.脚本语言或其他编程语言来实现Mapper和 Reducer,从而充分利用Hadoop并行 ...
 - Linux下postgres9.4 版本的单机版安装小笔记
			
1.添加RPMyum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-redha ...
 - Python自学:第二章 注释
			
#向大家问好 print("Hello Python People") 输出为 Hello Python People
 - Web版记账本开发记录(六)
			
经过今天的学习和实践,终于把这个web版的记账系统给做出来了, 虽然是很简单的一个系统,但是自己花费的时间也着实不少. 今天将大部分功能都实现了,接下来就是完善和美化, 接下来会对不足的地方进行改善, ...
 - 『Numpy』内存分析_利用共享内存创建数组
			
引.内存探究常用函数 id(),查询对象标识,通常返回的是对象的地址 sys.getsizeof(),返回的是 这个对象所占用的空间大小,对于数组来说,除了数组中每个值占用空间外,数组对象还会存储数组 ...
 - C++使用: C++中map的基本操作和用法
			
在阅读SSD代码中发现作者使用了C++中的map方法,因此搜索该关联式容器的使用方法,在这里一并总结. 一.Map 簡介 Map是STL的一個容器,它提供一對一的hash. 第一個可以稱為關鍵字(ke ...
 - javascript 一些特殊的写法
			
数组+数组: ["f", "o", "o"]+[] 执行结果:"f,o,o" ["f", " ...
 - 64位win7连接ACCESS报错“Microsoft.Jet.OLEDB.4.0”问题
			
本人开发了桌面软件,关于事务提醒,自己一直在用,很喜欢,但是在64位win7上无法运行,网上说多种方法,都觉得麻烦.后来自己在vs2012下编译成x86版本,结果可以运行在64位win7下了. 原来如 ...
 - Linux---centos编译安装ffmpeg
			
环境 系统环境:CentOS release 6.7 (Final) 需求 编译安装ffmpeg 获取依赖 安装依赖包 yum install -y autoconf automake cmake f ...