信息推送

springboot使用netty-socketio推送消息

佐手、 提交于 2019-11-27 03:17:59
前言 背景 最近被分配了一个站内信模块,由自己单独负责这个模块;这个模块主要功能就是提供一个接口给调用方,然后将传送的消息推送至登录的相关的用户的客户端;然后就是用户对这条消息的操作了,就是写一些curd的接口供前端调用; 技术选用 由于之前用netty做过一个项目,而且一位大佬也写了很多关于netty的文章,第一时间就想到去看他写的设计一个百万级的消息推送系统; 然后仔细对比了一下,我负责这个模块: 用户量不大,因为针对的是运维人员,而且不是所有运维人,是有针对性的; 不用安全验证,因为这个项目是在内网中运行; 这个模块不用分布式,只是一个微服务中的一部分; 最后选用了netty-socketio这个框架;而且网上的文章也不少; 正文 ** springboot整合netty-socketio pom 首先导入包,我导入的版本是1.7.11;我最开始导入的是跟前边的一个版本,但是出现了一个问题,就是OnEvent事件无法监听,所以我换了更高的版本,然后就可以了; <dependency> <groupId>com.corundumstudio.socketio</groupId> <artifactId>netty-socketio</artifactId> <version>1.7.11</version> </dependency> 复制代码整合

利用socket.io实现消息实时推送

廉价感情. 提交于 2019-11-26 14:31:58
最近在写的项目中存在着社交模块,需要实现这样的一个功能:当发生了用户被点赞、评论、关注等操作时,需要由服务器向用户实时地推送一条消息。最终完成的项目地址为:socket-message-push,这里将介绍一下实现的思路及部分代码。 项目背景介绍 最近在写的项目中存在着社交模块,需要实现这样的一个功能:当发生了用户被点赞、评论、关注等操作时,需要由服务器向用户实时地推送一条消息。最终完成的项目地址为:socket-message-push,这里将介绍一下实现的思路及部分代码。 项目的流程中存在着这样的几个对象: 用 Java 实现的后端服务器 用 Node.js 实现的消息推送服务器 用户进行操作的客户端 事件处理的流程如下: 用户进行点赞操作时,后端服务器会进行处理,并向 Node.js 消息推送服务器发送一条消息 Node.js 消息推送服务器接收到后端发送的消息后,处理数据,并确定向哪个用户进行推送 用户的客户端接收到由 Node.js 服务器推送来的消息后,即可进行通知的显示。 上面的流程中,Java 后端服务器是如何实现的不在此篇文章的讨论范围内,本文将主要介绍如何使用 Node.js 来实现这个消息推送服务器。 考虑消息推送服务器上必须记录下当前在线用户的信息,这样才能向特定的用户推送消息。所以当用户登录时,必须将自身的用户信息发到 Node.js 服务器上

swoole消息推送

会有一股神秘感。 提交于 2019-11-26 14:13:45
socket.php // 注释的部分是学习的笔记 <?php //创建websocket服务器对象,监听0.0.0.0:9502端口 $ws = new swoole_websocket_server("0.0.0.0", 9501); //监听WebSocket连接打开事件 /** * 客户端想服务器发送信息是调用函数 * $ws websocket 服务器 * $request 客户端信息 * $request->fd 客户端唯一编号 * * */ $ws->on('open', function ($ws, $request) { //var_dump($request->fd, $request->get, $request->server); //$ws->push($request->fd, "hello, welcome\n"); echo "connection open:{$request->fd}\n"; //$ws->push($request->fd, json_encode(['hello','world'])); }); //监听WebSocket消息事件 /** * $frame 客户端发送的信息 * $frame->fd 客户端的唯一编号 * $frame->data 客户端发送的信息 * */ $ws->on('message',