# kio **Repository Path**: kipling/kio ## Basic Information - **Project Name**: kio - **Description**: kio是基于jdk 1.6 nio实现的TCP长连接即时通讯框架。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2017-05-11 - **Last Updated**: 2021-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #kio: TCP长连接框架 适用于Android前端 **** #为何要开发kio# 由于之前开发的Android推送系统,使用HTTP实现的,随着业务的扩展,服务器的压力随之增大,开始考虑使用TCP长连接来重新实现,正好在一个技术群里了解到t-io,正是我想要的,本地测试都没问题,当把客户端迁移到Android系统时,才发现一个致命的问题,由于t-io是基于Jdk1.7开发的,而Android系统却是基于Jdk1.6,Jdk1.7的nio改动又非常大,所以才有了kio这个项目。kio大量借鉴了t-io的思想及代码,在此对t-io的作者表示感谢。 # 应用场景 # - IM - Android推送服务(已有解决方案) - 实时监控 - 其它实时通讯场景等 # 快速入门 # **服务器端** 启动服务 ServerMain.java package com.kipling.kio.demo.server; import java.io.IOException; import com.kipling.kio.core.intf.Packet; import com.kipling.kio.server.KioServer; import com.kipling.kio.server.ServerGroupContext; import com.kipling.kio.server.intf.ServerKioHandler; /** * @author KiplingLee E-mail: kiplinglee@163.com * @version 创建时间:2017年5月3日 上午10:39:44 * */ public class ServerMain { static ServerKioHandler serverHandler = new ShowcaseServerKioHandler(); static ServerGroupContext serverGroupContext = new ServerGroupContext(serverHandler); static KioServer kioServer = new KioServer(serverGroupContext); public static void main(String[] args) { try { kioServer.start("127.0.0.1", 6789); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } **客户端** 先启动服务器端后在启动两个客户端即可以实现P2P通讯 ClientMain.java package com.kipling.kio.client.entity; import java.io.IOException; import com.kipling.kio.client.TalkClient; public class ClientMain { public static void main(String[] args) throws IOException { TalkClient.buildClient("127.0.0.1",6789,"123456","654321"); } } ClientMain1.java package com.kipling.kio.client.entity; import java.io.IOException; import com.kipling.kio.client.TalkClient; public class ClientMain1 { public static void main(String[] args) throws IOException { TalkClient.buildClient("127.0.0.1",6789,"654321","123456"); } } **发送消息** ![](http://git.oschina.net/kipling/kio/raw/master/doc/resources/sendmsg.png) **接收消息** ![](http://git.oschina.net/kipling/kio/raw/master/doc/resources/resmsg.png)