socketio

即时通讯--socketio

风流意气都作罢 提交于 2019-11-29 03:27:10
1.即时通讯介绍 即时通讯是基于TCP长连接, 建立连接之后, 客户端/服务器可以无限次随时向对端发送数据, 实现服务器数据发送的即时性 http是短连接, 设计的目的是减少服务器的压力 http伪即时通讯 轮训 emmet 长轮训 long pulling 使用场景 聊天功能 在线即时推送 如下单后立即推送给商户 实现即时通讯 自己搭建服务器 选择支持的协议 websocket xmpp 使用一些比较成熟的框架 socketio xmppframework 自己封装socket 使用成熟的第三方方案 融云 环信 2.websocket和socketio websocket和http都是基于tcp http建立的是短连接, 而websocket建立的是长连接 socket.io是基于websocket协议的一套成熟的解决方案 优点 性能好 支持多平台 缺点 传输的数据并不完全遵循websocket协议, 这就要求客户端和服务端都必须使用socket.io解决方案 安装 pip install python-socketio 3. 搭建socketio服务器 (重点) 搭建支持协程的socket服务器 pip install python-socketio pip install eventlet # eventlet包提供了协程的支持 安装chrome插件firecamp

netty-socketio(一)之helloworld,与springboot整合

99封情书 提交于 2019-11-28 23:33:02
netty-socketio是一个开源的Socket.io服务器端的一个java的实现, 它基于Netty框架。 1、参考资料   (1) netty-socketio 项目github地址: https://github.com/mrniko/netty-socketio   (2)netty-socketio-demo: https://github.com/mrniko/netty-socketio-demo   (3)spring boot 下集成netty socket.io: https://blog.csdn.net/whyistao/article/details/79240445 2、helloworld案例:实现订阅/广播功能 本demo保存地址: https://github.com/wenbinouyang/oy_java demo使用 springboot 2.1.4.RELEASE,项目总体结构:      application.properties logging.file=/home/wwwlogs/nettysocketio007/log.log   pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

netty-socketio整合springboot消息推送

偶尔善良 提交于 2019-11-28 23:32:21
netty-socketio整合springboot消息推送 1.netty-socketio消息推送   1)在项目中常常涉及到消息推送的情况,消息推送要求的实时性,使用传统的方式已经不能满足需求了;   2)使用netty-socketio做消息推送,实现步骤,加入jar包----->写启动,添加,通知,关闭工具类 -----> 设置依靠监听器启动 ----->页面引入js----->编写请求获取消息; 2.实现 1)pom依赖与js文件:socket.io.js (见文章末尾附件包中) <dependencies> <dependency> <groupId>com.corundumstudio.socketio</groupId> <artifactId>netty-socketio</artifactId> <version>1.7.7</version> </dependency> </dependencies> 2)实现工具类 /** * @author liudongyang * @ClassName: Socketio * @Description: netty-socketio工具类 创建、添加和启动客户端 消息推送 关闭服务 * @date 2018年11月27日 下午4:57:59 */ public class Socketio { private

即时通信WebSocket 和Socket.IO

99封情书 提交于 2019-11-27 05:55:41
WebSocket HTML5定义了WebSocket协议 ,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。 在2008年诞生,2011年成为国际标准。 现在基本所有浏览器都已经支持了。 WebSocket是一种在单个TCP连接上进行全双工通信的协议。 在WebSocket API中,浏览器和服务器只需要完成一次握手(不是指建立TCP连接的那个三次握手,是指在建立TCP连接后传输一次握手数据),两者之间就直接可以创建持久性的连接,并进行双向数据传输。 Websocket使用ws或wss的统一资源标志符,类似于HTTPS,其中wss表示在TLS之上的Websocket。如: ws://example.com/wsapi wss://secure.example.com/ Websocket使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Websocket协议使用80端口;运行在TLS之上时,默认使用443端口。 握手协议 WebSocket 是独立的、创建在 TCP 上的协议。 报文 Websocket 通过 HTTP/1.1 协议的101状态码进行握手。 为了创建Websocket连接,需要通过浏览器发出请求,之后服务器进行回应,这个过程通常称为“握手”(handshaking)。 一个典型的Websocket握手请求如下: 客户端请求

springmvc 整合 netty-socketio

老子叫甜甜 提交于 2019-11-26 13:59:39
1 maven <dependency> <groupId>com.corundumstudio.socketio</groupId> <artifactId>netty-socketio</artifactId> <version>1.7.12</version></dependency>2 为了使服务运行启动需要实现 ApplicationListener 重写里面的方法 onApplicationEvent import com.corundumstudio.socketio.*; import com.corundumstudio.socketio.listener.ConnectListener; import com.corundumstudio.socketio.listener.DataListener; import com.corundumstudio.socketio.listener.DisconnectListener; import com.corundumstudio.socketio.listener.ExceptionListenerAdapter; import io.netty.channel.ChannelHandlerContext; import org.springframework.context