Netty实战手册(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aiyoyoyo/article/details/78657390

一、了解Netty和JSTS

那么多文章和同人介绍,我就不说了。主要说说JSTS。

JSTS是JEES系列的一个内容,是鄙人基于Spring+Netty 实现的一套Socket服务模型,你可以很轻松的建立服务,并形成你自己的服务器结构。由于现实异常,我仅实现了Netty Socket连接,至于其他协议容我以后加入。如果你有好的实现方式和思路,可以与我一起改进它。

我希望可以提供更多的思路和方式,来解决你的问题。更希望JEES系列能为你在项目中解决一部分问题。


二、JSTS的使用方式

你需要通过以下方式使用它:

1. Spring的配置文件,来定义你的应用程序使用方式,例如:jees-core-dispatcher.xml

	<!-- 基础配置部分 -->
	<util:properties id="defineConfig" location="define.cfg" /> <!-- 常用的一些自定义配置项,我这里仅配置了端口 -->
	<context:property-placeholder properties-ref="defineConfig" ignore-unresolvable="true" />
	<context:annotation-config />
	
	<!-- 前置功能 -->	
	<context:component-scan base-package="com.jees.core.socket.*" /> <!-- 这里包含了服务器模型 -->
	<!-- 使用Netty作为Socket服务器  -->
	<context:component-scan base-package="com.jees.jsts.netty.*" /> <!-- 这里包含了Netty服务模型 -->
2. 你的应用程序入口,例如:

public static void main( String[] args ) {
new ClassPathXmlApplicationContext( ICommonConfig.CFG_DEFAULT ) ;
	( (ISupportSocket) CommonContextHolder.getBean( ISupportSocket.SOCKET_SUPER ) ).onload();
}

3. 到这里,Netty服务器基本都结束了。


三、服务器的实现方式

作为一个完整的服务器,上面这点肯定是不够用的。你需要为JSTS实现几个接口,以便完成服务相关内容的扩展。

编写一个类,继承 com.jees.core.socket.support.ISupportHandler

public class HandlerService implements ISupportHandler< ChannelHandlerContext , Object >

Object作为协议的数据传输类型,常见的是ByteBuf , 为什么使用Object,因为我使用Probuff作为消息参数传递。为了方便可以调整,所以才使用Object。

同时还提供了可以自定粘包解包的抽象类 com.jees.jsts.netty.support.AbsNettyDecoder ,通过这种方式,我们可以把ByteBuf转换为我们自己想用的数据格式来做数据传递。


四、 JSTS哪里有?

我在码云上,放了相关内容的代码,你可以通过git下载下来。同时项目采用的Maven方式构建,同JEESJS一样,我随时可能做个半吊子就玩放置Play,你可以基于我的思路继续下去。整个项目,我都是提供完整的代码,可以直接使用,但你需要一定程度的了解各个环节。

GIT地址:https://gitee.com/aiyoyoyo/jeesupport.git 

欢迎各位入群讨论:8802330

下次更新的内容我将提供更完善的服务器代码,主要内容为数据协议的内容处理以及处理Netty的事件相应。




猜你喜欢

转载自blog.csdn.net/aiyoyoyo/article/details/78657390