socket.io数据推送

本文档介绍了一个使用Netty-socketio搭建的实时推送服务的Demo,详细阐述了服务端配置、客户端连接缓存、消息发送、事件监听、消息Bean以及页面交互。在Spring Boot环境中实现简单的聊天功能,通过Socket.IO实现实时通信。测试过程中发现中文乱码问题,但未找到解决方案。
摘要由CSDN通过智能技术生成

参考:基于netty-socketio的web推送服务Spring Boot实战之netty-socketio实现简单聊天室(给指定用户推送消息)socket.io 中文文档

socketio简介
Socket.io是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用,非常方便和人性化,而且支持的浏览器最低达IE5.5.

socket.io特点
实时分析:将数据推送到客户端,这些客户端会被表示为实时计数器,图表或日志客户。
实时通信和聊天:只需几行代码便可写成一个Socket.IO的”Hello,World”聊天应用。
二进制流传输:从1.0版本开始,Socket.IO支持任何形式的二进制文件传输,例如:图片,视频,音频等。
文档合并:允许多个用户同时编辑一个文档,并且能够看到每个用户做出的修改。

Demo简介

服务端使用netty-socketio,客户端使用socket.io.js。
本例完全来自上面的链接,这里只是测试效果以及做备忘。本例实现的功能是一个用户向另外一个用法发小消息。

maven中添加依赖

<dependency>
  <groupId>com.corundumstudio.socketio</groupId>
  <artifactId>netty-socketio</artifactId>
  <version>1.7.3</version>
</dependency>

服务端SocketServer

@Component
public class ChatServer implements InitializingBean {
   
    @Autowired
    private EventListenner eventListenner;
    @Override
    public void afterPropertiesSet() throws Exception {
        Configuration config = new Configuration();
        config.setPort(9098);
        SocketConfig socketConfig = new SocketConfig();
        socketConfig.setReuseAddress(true);
        socketConfig.setTcpNoDelay(true);
        socketConfig.setSoLinger(0);
        config.setSocketConfig(socketConfig);
        config.setHostname("localhost");
        SocketIOServer server = new SocketIOServer(config);
        server.addListeners(eventListenner);
        server.start();
        System.out.println("启动正常");
    }
}

缓存类,缓存客户端连接

@Component("clientCache")
public class SocketIOClientCache {
   
    //String:EventType类型
    private Map<String,SocketIOClient> clients=new ConcurrentHashMap<String,SocketIOClient>();
    //用户发送消息添加
    public void addClient</
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值