t-io初学

本文介绍了t-io网络框架,将其与netty进行对比,并详细阐述了服务端和客户端的创建过程,包括依赖引入、ServerGroupContext、ServerAioHandler和ServerAioListener接口的实现,以及Packet数据类的使用。客户端的建立类似,通过ClientAioHandler和ClientAioListener实现通信交互。
摘要由CSDN通过智能技术生成

1、t-io是神马?

       t-io是一个网络框架,从这一点来说是有点像 netty 的,但 t-io 为常见和网络相关的业务(如 IM、消息推送、RPC、监控)提供了近乎于现成的解决方案,即丰富的编程 API,极大减少业务层的编程难度。

2、怎么用?分为服务端和客户端,先看服务端!

① maven引入依赖

<dependency>
     <groupId>org.t-io</groupId>
     <artifactId>tio-core</artifactId>
     <version>3.0.2.v20180612-RELEASE</version>
</dependency>

② TioServer

不知道要用什么,就先造一个TioServer,它就会告诉接下来该干什么。

TioServer tioServer = new TioServer(serverGroupContext);

需要一个ServerGroupContext。还是老样子,造一个ServerGroupContext,就知道接下来的步骤。

ServerGroupContext serverGroupContext = new ServerGroupContext("tio-server", new ServerAioHandler(), new ServerAioListener());

需要一个字符串String,表示的是服务端的名称。之后是ServerAioHandler和ServerAioListener,这两个是接口,需要自己实现。

先是ServerAioHandler的实现类,看其中的方法就知道是用来编码和解码,还有就是处理业务逻辑(handler方法)

package com.xxjsll.server.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tio.core.ChannelContext;
import org.tio.core.GroupContext;
import org.tio.core.Node;
import org.tio.core.Tio;
import org.tio.core.exception.AioDecodeException;
import org.tio.core.intf.Packet;
import org.tio.server.intf.ServerAioHandler;

import java.nio.ByteBuffer;

/**
 * @author tsinghua
 * @date 2018/6/20
 */
public class MServerAioHandler implements ServerAioHandler {


    private static final Logger logger = LoggerFactory.getLogger(MServerAioHandler.class);

    public Packet decode(ByteBuffer byteBuffer, int limit, int position, int readableLength, ChannelContext channelContext) throws AioDecodeException {

        logger.debug("inside decode...");

        if (readableLength < ServerPacket.PACKET_HEADER_LENGTH) {
            return null;
        }

        int bodyLength = byteBuffer.getInt();

        if (bodyLength < 0) {
            throw new AioDecodeException("body length[" + bodyLength + "] is invalid.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值