IM微信钉钉架构

Netty服务端启动程序【通讯程序】

Netty本质是NIO【非阻IO程序,负责多个端之间数据交互】

服务器启动在本机的9000端口

然后用telnet命令链接

Netty核心代码就3步【套模板】

1.初始化Netty的ServerBootstrp对象

2.通过链式编程绑定一系列参数

3.启动Netty服务器并绑定到某个端口上去

做完这3步,客户端telnet就能连接它发送数据。

怎么接收到客户端数据的?

还需要写个数据的处理程序,Handler【写好之后按照模板配就行了】

继承Netty规定好的Api类

这两个方法比较关键

当客户端和服务端连接建立完可能要做一些业务操作,比如系统初始化,只需要实现Netty处理的channelActive()方法即可。Netty会在连接建立好主动回调这个方法。

客户端发送一条消息到服务端,服务端收到以后会主动回调channelRead()方法,然后把发送的消息封装到msg里。对服务端程序员,拿到msg以后做相关业务逻辑就行。

Netty服务器会在IO通讯的相关环节,比如连接建立好之后,收到数据的时候,各个重要的环节开放一个接口,对于业务开发人员,只需要在这些关键环节写自己的业务逻辑就行。

聊天室逻辑:

比如我送一条消息到服务器,服务器会做转发,转发给每一个在这个聊天室的客户端。

Netty的客户端其实也是可以不用命令行模拟Netty客户端,可以用自己的Api来开发Netty客户端的

第一步和第二步和刚才一样初始化Netty客户端然后绑定一系列的参数,最后连接刚才的服务端

服务端可以感知到客户端上线的

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信是一款非常流行的社交软件,是中国移动互联网领域的一颗明珠。微信架构主要由客户端、服务器和数据库三部分组成,今天我们来详细了解一下微信的软件架构。 一、客户端架构 微信的客户端主要分为Android、iOS、Windows Phone和Web四个部分。其中Android和iOS占据了市场的绝大部分,Windows Phone和Web的用户较少。 1. Android客户端 Android客户端的架构主要由Activity、Service、BroadcastReceiver和ContentProvider四个组件构成。Activity是用户界面的载体,负责展示界面和处理用户的交互事件;Service负责在后台执行任务,如音乐播放和推送消息等;BroadcastReceiver负责接收系统和应用的广播消息,如网络状态变化和电池电量低等;ContentProvider则负责对外提供数据访问的接口。 2. iOS客户端 iOS客户端的架构主要由ViewController、View、Model和Network四个部分组成。ViewController是用户界面的载体,负责展示界面和处理用户的交互事件;View负责展示数据,如TableView和CollectionView等;Model负责数据的存储和处理,如本地化存储和网络请求等;Network则负责网络通信,如Socket和HTTP等。 3. Windows Phone客户端 Windows Phone客户端的架构主要分为View、ViewModel和Model三个部分。View是用户界面的载体,负责展示界面和处理用户的交互事件;ViewModel则负责将View和Model连接起来,负责用户交互和数据处理的逻辑;Model则负责数据的存储和处理,如本地化存储和网络请求等。 4. Web客户端 Web客户端的架构主要由HTML、CSS和JavaScript三个部分组成。HTML负责页面的结构,CSS负责页面的样式,JavaScript负责页面的交互和数据处理。 二、服务器架构 微信的服务器架构主要分为应用服务器、消息服务器和文件服务器三个部分。 1. 应用服务器 应用服务器主要负责处理微信的业务逻辑,如用户注册、登录、聊天等。应用服务器主要分为Web服务器和应用服务器两个部分。Web服务器负责接收用户请求,如登录和注册等;应用服务器则负责处理请求,如验证用户信息和推送消息等。 2. 消息服务器 消息服务器主要负责消息的传输和存储。消息服务器主要分为IM服务器和Push服务器两个部分。IM服务器负责实现即时通讯的功能,如聊天、语音和视频等;Push服务器则负责推送消息,如推送系统通知和好友消息等。 3. 文件服务器 文件服务器主要负责文件的存储和传输。文件服务器主要分为图片服务器、音频服务器和视频服务器三个部分。图片服务器负责存储用户上传的图片,如头像和聊天图片等;音频服务器则负责存储用户上传的音频,如语音消息和歌曲等;视频服务器则负责存储用户上传的视频,如视频聊天和短视频等。 三、数据库架构 微信数据库架构主要分为关系型数据库和非关系型数据库两个部分。 1. 关系型数据库 关系型数据库主要负责存储用户的基本信息,如用户的ID、昵称和性别等。关系型数据库主要分为MySQL和Oracle两种。 2. 非关系型数据库 非关系型数据库主要负责存储用户的聊天记录和其他一些非结构化数据。非关系型数据库主要分为MongoDB和Redis两种。 四、总结 微信的软件架构主要由客户端、服务器和数据库三部分构成。客户端主要分为Android、iOS、Windows Phone和Web四个部分,服务器主要分为应用服务器、消息服务器和文件服务器三个部分,数据库主要分为关系型数据库和非关系型数据库两个部分。微信的软件架构设计合理,各个组件之间相互配合,使得微信能够快速响应用户的需求,为用户提供更好的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值