专栏首页BeJavaGodNetty+MUI从零打造一个仿微信的高性能聊天项目,兼容iPhone/iPad/安卓

Netty+MUI从零打造一个仿微信的高性能聊天项目,兼容iPhone/iPad/安卓

要说到微信,我相信是个人都应该知道,几乎人人都会安装这款社交APP吧,它已经成为了我们生活中不可缺少的一份子。

我记得我上大学那会刚接触Java,做的第一个小项目就是基于J2SE的聊天室,使用Java编写websocket异常麻烦,而且又是同步阻塞的,性能非常差。随后几年经过工作的历练,接触了netty,使用netty可以搭建一款高性能的服务器,他封装了很多api,也提供NIO 和 AIO,当然可以用来编写websocket。

其实我一直想着自己能不能开发一款APP,用于聊天,用于社交呢?苦于不会iOS和安卓,而且要开发多个不同手机端,开发成本太高了。后来接触了MUI,发现这个前端框架非常牛,可以说是最接近原生APP的UI框架了。

那么结合以上三点,我想咱们也能模仿微信来做一款简单的聊天app吧?随后就有了这套实战,我们通过下图简单了解一下课程大纲以及体验版内容

在看下图,其中包含了app的体验二维码,只不过是安卓版的,ios没有发布到appstore,不过也能从导学可以看到相应的演示。

整体实战内容分为5大块,简单说一下

1,netty入门,理解bio nio aio,理解netty三种线程模型。

2,搭建一个最简单的hello netty服务器,搭建一个websocket网页聊天小程序,可以使用户在web浏览器或者移动端浏览器进行消息的收发。

3,搭建移动端整体架构,完成通讯录开发,添加好友,个人信息页面开发等

4,聊天业务开发与netty整合,涉及到相关业务细节方面的处理。心跳机制,使用netty保持后端心跳,当然前端也要根据业务保持一定的keepalive

5,项目打包上线到云服务器,app云打包与安装测试

其实还有一点,就是推送,我们会整合个推推送,实现添加好友,通过好友请求以及用户离线消息的推送,不过这块内容后续会以免费课的形式推出噢~(大家可以关注~)

可能有小伙伴会问,要兼容多端,是不是很难?需要哪些技能储备?需要会ios和安卓吗?

其实大家多虑了,

前端: html css JavaScript,js方面只需要会原生的即可,当然你会jQuery vue等那就锦上添花啦~

后端: Javaweb ssm基础 springboot基础 mysql 以及linux

很简单吧~

看得出来,老师的课程都是以全栈为主,包括老师之前的一套仿抖音全栈实战(https://coding.imooc.com/class/217.html)也是如此,为啥要推动全栈呢?

1、首先,在有些公司,开发一个app,需要两个手机端,一个后端,一个运维,这是最少的配备,人力成本是老板必须要考虑的事,当然,如果前后端以及运维你都会了,为老板节省了成本,你的薪水也能上升啊!同样你的个人竞争力就更加体现了,不是么? 2、现在很多企业的不同产品线都会有聊天的业务,主要提供给用户和客服人员的沟通,学完以后当你遇到类似的聊天业务时,就能从容面对了吧 3、接私活,很多程序员都会接私活,包括老师我也是,现在的私活不像几年前那么简单了,几乎都需要全栈,学完咱们这套实战啊,你就可以迈向个人开发者了,以后的零花钱啊也不用发愁喽~甚至当你有想法的时候创业也是OK的! 4、假设你正好要做一个高大上的毕业设计,普通的毕设可能并不能忽悠导师,那么这个时候你就不用愁了,学完以后做个惊艳同学和你导师的作品吧 5、很多人认为云服务器这玩意很难,惧怕,而且需要linux基础,那么不用怕,课程中会手把手把你项目部署到腾讯云服务器,从此不再惧怕项目发布和上线 6、有助于面试,现在面试往往到最后都会问你了解netty吗,谈一谈聊一聊netty,很多人惧怕netty也不了解netty而失去了offer,如果你面试的时候,能够拿出这样的一个项目给面试官看,从零到上线的过程大致讲一遍,再聊一聊netty是怎么用的,那么企业基本都会要你,我是面试官的话也是如此,大大增加了你的个人竞争力 7、未来职业规划。做全栈,对于你未来的职业路径也是非常好的非常重要的,为什么?等你到4-50岁的时候你还是做开发吗?国内外的互联网环境是不一样的,你要往技术总监的位置靠拢吧?!如果你不是全栈,那你凭什么做总监?对于技术规划,解决方案,什么业务该用什么技术,技术的好坏等等选择择都需要经过你来抉择,如果你仅仅只会后端或者只会前端,那么你的不足之处会有另外的人来弥补。如果你是从全栈一路走来的,那么你的权利会非常大,老板也会听你的,他的耳边不会有第二种声音。所以不管是现在还是未来,全栈的可发展性可持续性越来越大,不然为什么国外的开发者这么喜欢全栈呢?

既然这么有用,那学起来难吗?其实不难吧,老师是手把手带着你一步步实现的~

此外,除了实战内容以外,老师还提供了额外的课程彩蛋,都是老师之前录制的哈,都是为了大家能够更好的学习到技能,相关课程如下: 1. linux基础; 2. MUI基础入门 3. shiro权限入门 4. 微信/支付宝支付 等~,这些老师都会提供给大家噢~

另外springboot入门与整合的免费课程在咱们慕课网上也有:https://www.imooc.com/learn/956

那么最后,还是祝大家能够学习到自己想要的技能,提高个人竞争力,课程已经上线,地址请点击【原文链接】

本文分享自微信公众号 - BeJavaGod(wxleechenxiang)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 权限框架 - shiro 简单入门实例

    前面的帖子简单的介绍了基本的权限控制,可以说任何一个后台管理系统都是需要权限的 今天开始咱们来讲讲Shiro 首先引入基本的jar包 ? 项目工程结构: ? 创...

    风间影月
  • Shiro系列视频 - 5. shiro的简单登录认证流程与代码展示源码分析

    这是关于Shiro的原创系列视频,目前已经在官网以及一些自媒体平台发布,公众号也开始同步更新,在线播放采用腾讯视频,削微模糊 Shiro系列视频 - 5. sh...

    风间影月
  • RabbitMQ 一二事(3) - 订阅模式(微信公众号模式)的应用

    前言:我也是蛮佩服自己的,刚喝完酒,回来接着写。。。 之前讲的消费者互相可以把队列中的消息全部读取,但是不是读完整的所有信息 那么采用订阅模式就行,这就是微信...

    风间影月
  • nginx0.1.0之http模块初始化源码分析(2)

    本文讲解http各个模块create_srv_conf和create_loc_conf钩子,还有指令的解析。 各模块的create_srv_conf和creat...

    theanarkh
  • 2018-10-16 let-netty-easylet-netty-easy

    Albert陈凯
  • 第一节 netty概述

    用户1418372
  • 彤哥说netty系列之开篇

    彤哥
  • 腾讯云Serverless架构安装Python依赖的小工具(包括对外的API,基于SCF)

    很久很久之前,做了一个在线下载依赖包的工具,但是由于是放在了CVM上,收费比较高昂,而自己比较清贫,所以没能坚持多久,那个工具就被我下掉了,后来有小伙伴就给我留...

    Dfounderliu
  • AI不思议|AI城市狂想曲

    阳光照进房间,小P被温柔的声音唤醒:“主人您好,今天是2040年6月21日,天气晴,室外最高温会达到35度,室内24度。早餐已经根据您的需求配置好了,请您洗漱后...

    用户1386409
  • 高并发服务器的设计--架构与瓶颈的设计

    做架构设计,难免有时候被人问及系统的瓶颈在哪,那首先来了解下什么是瓶颈? 打个形象的比方,人的嘴巴可以吞下一整个面包,但是却咽不下去,因为食管不给力,它比较细,...

    李海彬

扫码关注云+社区

领取腾讯云代金券