Netty多语言(Java、Android 、C#、WebSocket)通信实例Demo (四)C#端简介【附源码】
转载请注明出处,原文地址:https://blog.csdn.net/lucherr/article/details/88428244
Netty多语言(Java、Android 、C#、WebSocket)通信实例Demo (一)概述 【附源码】
Netty多语言(Java、Android 、C#、WebSocket)通信实例Demo (二)Java端简介【附源码】
Netty多语言(Java、Android 、C#、WebSocket)通信实例Demo (三)Android端简介【附源码】
Netty多语言(Java、Android 、C#、WebSocket)通信实例Demo (四)C#端简介【附源码】
C#端对应的源码目录为NettyCSharp:
源码结构如下图:
由于0基础写的这个C# Demo,所以可能有些地方写的不专业,还望高手指出,好在C#和Java的语法差不多,代码和Java客户端也很类似,没有太难的地方,下面从本人角度说几个点
1.项目需要依赖DotNetty、MessagePack、EventBus,可以从NuGet获取:
Install-Package DotNetty.Codecs
Install-Package DotNetty.Handlers
Install-Package MessagePack
Install-Package EventBus
2.MessagePack的使用可以参考官方文档:https://msgpack.org/
编码:
public class MessagePackEncoder extends MessageToByteEncoder
解码:
public class MessagePackDecoder extends MessageToMessageDecoder {@Overrideprotected void decode(ChannelHandlerContext ctx, ByteBuf buf, List
3.使用EventBus更新界面:https://github.com/songdongsheng/EventBus
4.MessagePack实体类的属性需要是public的否则该字段的属性会变成null,这是本人目前还没搞明白的地方,希望明白人能给留个言,如:
//事件类别 [Key(0)] public EventType eventType; // 消息来源,如server,android etc [Key(1)] public String from; [Key(2)] public String time;
运行效果如:
源码地址:
CSDN下载 积分不受我的控制
Github地址
PS:如果发现代码中有写的不对、有更好的实现方法或者文章中有误的地方,还望各位指出,我及时修改
更多相关文章
- Android 中Popwindow弹出菜单的两种方法实例
- Android中launcherMode="singleTask"详解【android源码解析六】
- Android中的ThreadLocal源码解析
- Android JNI 实例
- Android软Watchdog源码分析
- Android Framework源码下载及编译
- android 源码编译打包的apk出现accessed stale local reference
- webrtc——web与android,android间通信