环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

环信客服云

环信客服云

无需下载,注册即用
环信机器人

环信机器人

智能,高效
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有
0
评论

Swift高级分享 - 在Swift中构建模型数据 iOS开发

iOS开发费城 发表了文章 • 24 次浏览 • 2021-05-08 13:05 • 来自相关话题

在代码库中建立可靠的结构通常是必不可少的,以便更容易使用。然而,实现一个既足够严格以防止错误和问题的结构 - 以及对现有功能足够灵活的结构以及我们想要的任何未来变化 - 都可能非常棘手。对于模型代码而言尤其如此,模型代码通常由许多不同的功能使用,每个功能都有自... ...查看全部
0
评论

iOS开发性能监控 iOS开发

iOS开发费城 发表了文章 • 50 次浏览 • 2021-05-08 12:07 • 来自相关话题

App 的性能问题虽然不会导致 App不可用,但依然会影响到用户体验。如果这个性能问题不断累积,达到临界点以后,问题就会爆发出来。这时,影响到的就不仅仅是用户了,还有负责App开发的你。线下性能监控其中线下监控使用的还是Instruments,Instrume... ...查看全部
0
评论

CocoaAsyncSocket源码分析---Connect (八) iOS开发

技术精选zuyu 发表了文章 • 37 次浏览 • 2021-05-08 11:22 • 来自相关话题

Connect流程,用一张图来概括总结一下吧:socketchildSocketFD = accept(parentSocketFD, (struct sockaddr *)&addr, &addrLen); 然后调用了newSocketQue... ...查看全部
0
评论

CocoaAsyncSocket源码分析---Connect (七) iOS开发

技术精选zuyu 发表了文章 • 36 次浏览 • 2021-05-08 11:18 • 来自相关话题

addStreamsToRunLoop这里方法做了两件事:CFStream读写回调的常驻线程,其中调用了好几个函数: + (void)startCFStreamThreadIfNeeded; + (void)cfstreamThread; 在这两个函数中,添... ...查看全部
0
评论

CocoaAsyncSocket源码分析---Connect (六) iOS开发

技术精选zuyu 发表了文章 • 31 次浏览 • 2021-05-08 11:13 • 来自相关话题

本文方法十一 -- 连接成功后的初始化原因是为了线程安全和socket相关的操作必须在queue中被回调。这个方法基本上很简单,就是关于两个stream函数的调用:这个函数创建了一对读写stream,并且把stream与这个scoket做了绑定。相信用过的朋友... ...查看全部
0
评论

CocoaAsyncSocket源码分析---Connect (五) iOS开发

技术精选zuyu 发表了文章 • 32 次浏览 • 2021-05-08 11:09 • 来自相关话题

上文我们提到了GCDAsyncSocket的初始化,以及最终connect之前的准备工作,包括一些错误检查;本机地址创建以及socket创建;服务端地址的创建;还有一些本机socket可选项的配置,例如禁止网络出错导致进程关闭的信号等我们去用之前创建的本机地址... ...查看全部
0
评论

CocoaAsyncSocket源码分析---Connect (四) iOS开发

技术精选zuyu 发表了文章 • 40 次浏览 • 2021-05-08 11:05 • 来自相关话题

//根据host、port + (NSMutableArray *)lookupHost:(NSString *)host port:(uint16_t)port error:(NSError **)errPtr { LogTrace(); ... ...查看全部
0
评论

CocoaAsyncSocket源码分析---Connect (三) iOS开发

技术精选zuyu 发表了文章 • 33 次浏览 • 2021-05-08 11:04 • 来自相关话题

interface本文方法四--本地地址绑定方法- (void)getInterfaceAddress4:(NSMutableData **)interfaceAddr4Ptr address6:(NSMutableDa... ...查看全部
0
评论

CocoaAsyncSocket源码分析---Connect (二) iOS开发

技术精选zuyu 发表了文章 • 41 次浏览 • 2021-05-08 10:57 • 来自相关话题

connect也就是我们在截图中选中的方法,那我们就从这个方法作为起点,开始讲起吧。保证这个连接操作一定是在我们的接着把Block中连接过程产生的错误进行赋值,并且把连接的结果返回出去//如果有错误,赋值错误 if (errPtr) *errPtr =... ...查看全部
0
评论

CocoaAsyncSocket源码分析---Connect (一) iOS开发

技术精选zuyu 发表了文章 • 38 次浏览 • 2021-05-08 10:51 • 来自相关话题

CocoaAsyncSocket是谷歌的开发者,基于BSD-Socket写的一个IM框架,它给Mac和iOS提供了易于使用的、强大的异步套接字库,向上封装出简单易用OC接口。省去了我们面向Socket以及数据流Stream等繁琐复杂的编程。本文为一个系列,旨在... ...查看全部
0
评论

汉字笔顺动画技术剖析 Android

技术精选王二蛋和他的张大花 发表了文章 • 30 次浏览 • 2021-05-08 10:31 • 来自相关话题

背景 汉字笔顺动画是常见的语文教育需求,我们导入网上开源的 Hanzi Writter 并部署编辑器,应用在大力智能作业灯上。在原版前端实现基础上我们扩展了 Android 和 iOS 端实现,提供更优化的笔顺动画性能。增强对笔顺绘制的控制能力,实现了指定笔... ...查看全部
0
评论

从一个10年程序员的角度告诉你:搞懂Java面向对象有多容易? Android Java

技术精选王二蛋和他的张大花 发表了文章 • 33 次浏览 • 2021-05-08 10:29 • 来自相关话题

前言: 1)java 面向对象语言,面向过程围绕过程(解决问题步骤),面向对象围绕实体(名词,特性(属性),行为(动作、方法))。它们设计思想区别在于关心核心不同的。 主流都是面向对象的。 实际开发,先按面向对象思想进行设计,具体实现时面向过程(人... ...查看全部
0
评论

不懂泛型,怎么装逼,一文把泛型说的明明白白,安排!!! Android Java

技术精选王二蛋和他的张大花 发表了文章 • 28 次浏览 • 2021-05-08 10:27 • 来自相关话题

目录 前言 1、泛型的概念 2、泛型的使用 3、泛型原理,泛型擦除 3.1 IDEA 查看字节码 3.2 泛型擦除原理 4、?和 T 的区别 5、super extends 6、注意点 1、静态方法无法访问类的泛型 2、创建之后无法修改类... ...查看全部
1
评论

程序员五一被拉去相亲,结果彻底搞懂了HTTP常用状态码 Java

技术精选王二蛋和他的张大花 发表了文章 • 33 次浏览 • 2021-05-08 10:24 • 来自相关话题

我有一个朋友…… 叫小星,是个北漂程序员。 小星年纪不小了,还是个单身狗。家里很着急,小星也很着急。 可是,小星起身一看,眼前一闪闪闪闪闪闪闪闪闪…… ——全是秃头抠脚大汉…… 前一阵子好不容易来个实习生小姑娘,分给小星带,小星高兴坏了,结果姑娘... ...查看全部
0
评论

Android开发基础之控件CheckBox Android

技术精选王二蛋和他的张大花 发表了文章 • 28 次浏览 • 2021-05-08 10:22 • 来自相关话题

目录 一、基础属性 二、自定义样式 1、去掉CheckBox的勾选框 2、自定义背景颜色 3、自定义勾选框的背景图片 三、监听事件       &nb... ...查看全部
1
评论

Android自定义弧型View Android

技术精选王二蛋和他的张大花 发表了文章 • 30 次浏览 • 2021-05-08 10:21 • 来自相关话题

好久没动手玩View自定义,有点生疏了。效果如下 思路很简单,onDraw绘制弧线、绘制Text canvas.drawArc(oval, startAngle, sweepAngle, false, paint); canvas.drawText... ...查看全部
0
评论

音视频开发必备基础知识点整理 IM

技术精选王二蛋和他的张大花 发表了文章 • 28 次浏览 • 2021-05-08 10:20 • 来自相关话题

日常工作中都会接触到音视频的开发,比如目前工作中都会涉及到 TSPlayer、IjkPlayer、MediaPlayer 提供播放能力,不管是什么 Player,其上层调用都是大同小异,但是具体实现以及能够支持的能力各不相同,要想继续深入就必须深入音视频的学习... ...查看全部
0
评论

【JavaWeb】关于WebSocket的IM在线聊天技术 IM

技术精选王二蛋和他的张大花 发表了文章 • 25 次浏览 • 2021-05-08 10:18 • 来自相关话题

最近在弄IM的在线聊天,发现layim又停摆了,所以下决心看看以前学的socket技术,这次的想法是不用swing,使用javaweb的jsp实现在线聊天。 我计划的大致实现步骤分这样几大步: 1、首先实现简单的demo。 2、然后结合线程,实现多客户端连接... ...查看全部
0
评论

Android移动端IM开发之应用层实现TCP长连接多路复用 IM

技术精选王二蛋和他的张大花 发表了文章 • 32 次浏览 • 2021-05-08 10:14 • 来自相关话题

这里只是提供一个长连接多路复用的实现思路 什么是长连接多路复用 从字面意思看就是一台设备只有一条长连接连向服务器,其他集成这个IM SDK的app都会共享这条长连接,TCP长连接的维护是比较耗资源的,而且也会增加耗电,所以实现长连接共享就表示在一定程度... ...查看全部
0
评论

Android中开发IM即时通讯功能的方案 IM

技术精选王二蛋和他的张大花 发表了文章 • 37 次浏览 • 2021-05-08 10:11 • 来自相关话题

最近准备做IM功能,在技术预研当中,其实可行方案还是比较多的,就看怎么选了这里有必要普及一下xmpp是个什么东西?引用某娘的定义:      XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性... ...查看全部
0
评论

IM开发干货分享:我是如何解决大量离线消息导致客户端卡顿的 IM

技术精选王二蛋和他的张大花 发表了文章 • 36 次浏览 • 2021-05-08 10:09 • 来自相关话题

1、引言 好久没写技术文章了,今天这篇不是原理性文章,而是为大家分享一下由笔者主导开发实施的IM即时通讯聊天系统,针对大量离线消息(包括消息漫游)导致的用户体验问题的升级改造全过程。 文章中,我将从如下几个方面进行介绍: 1)这款IM产品的主要业务及... ...查看全部
0
评论

自已开发IM有那么难吗?手把手教你自撸一个Andriod版简易IM(有源码) IM

技术精选王二蛋和他的张大花 发表了文章 • 40 次浏览 • 2021-05-08 09:56 • 来自相关话题

本文由作者FreddyChen原创分享,为了更好的体现文章价值,引用时有少许改动,感谢原作者。 1、写在前面 一直想写一篇关于im即时通讯分享的文章,无奈工作太忙,很难抽出时间。今天终于从公司离职了,打算好好休息几天再重新找工作,趁时间空闲,决定静下心... ...查看全部
0
评论

从零开始开发IM(即时通讯)服务端 IM

技术精选王二蛋和他的张大花 发表了文章 • 29 次浏览 • 2021-05-08 09:52 • 来自相关话题

精选:★→2020年最新的常问企业面试题大全以及答案 作者:yuanrw 原文地址 https://juejin.im/post/5d6b3949f265da03c34c13e5 好消息:IM1.0.0 版本已经上线啦,支持特性: ... ...查看全部
0
评论

iOS-编译过程 iOS开发

iOS开发zuyu 发表了文章 • 31 次浏览 • 2021-05-07 22:02 • 来自相关话题

编译器iOS编译和打包时,编译器直接将代码编译成机器码,然后直接在CPU上运行。而不用使用解释器运行代码。因为这样执行效率更高,运行速度更快。C,C++,OC都是使用的编译器生成相关的可执行文件。解释器:解释器会在运行时解释执行代码,获取一段代码后就会将其翻译... ...查看全部
0
评论

iOS- 核心动画分类以及基本使用 iOS开发

iOS开发编程扫地僧 发表了文章 • 33 次浏览 • 2021-05-07 21:22 • 来自相关话题

1、UIView和核心动画区别?核心动画只能添加到CALayer, 核心动画一切都是假象,并不会改变真实的值。如果需要与用户交互就使用UIView的动画. 不需要与用户交互可以使用核心动画。在转场动画中,核心动画的类型比较多。根据⼀个路径做动画,只能用核心动画... ...查看全部
0
评论

iOS--开发中遇到的der,csr,crt,p12,pem文件到底是什么 iOS开发

iOS开发费城 发表了文章 • 35 次浏览 • 2021-05-07 19:22 • 来自相关话题

关于pem文件的话,上一篇文章已经有提到:iOS---利用OpenSSL演示RSA加密解密,PEM在工作中,pem文件,我们是不会直接使用的,需要从pem文件里面提取csr文件。csr文件步骤1:从private.pem文件里,提取rsacert.csr文件,... ...查看全部
0
评论

Swift高级分享 - 在Swift中提取视图控制器操作 iOS开发

iOS开发费城 发表了文章 • 29 次浏览 • 2021-05-07 19:04 • 来自相关话题

视图控制器往往在为Apple平台构建的大多数应用程序中起着非常重要的作用。他们管理我们UI的关键方面,提供系统功能的桥梁,如设备方向和状态栏外观,并经常响应用户交互 - 如按钮点击和文本输入。由于它们通常具有这样的关键作用,因此许多视图控制器最终遭受常见的大规... ...查看全部
2
回复

WebIM的问题,发送“阿斯顿”这三个字的时候会出现问题 环信_WebIM

技术讨论区lizg 回复了问题 • 2 人关注 • 2436 次浏览 • 2021-05-07 18:11 • 来自相关话题

0
评论

ES6 exports 与 import 使用 Javascript ES6

Web开发AuCf 发表了文章 • 40 次浏览 • 2021-05-07 15:59 • 来自相关话题

在创建JavaScript模块时,export 用于从模块中导出实时绑定的函数、对象或原始值,以便其他程序可以通过 import使用它们。被导出的绑定值依然可以在本地进行修改。在使用import 进行导入时,这些绑定值只能被导入模块所读取,... ...查看全部
0
评论

开源一个自用的Android IM库,基于Netty+TCP+Protobuf实现(4) IM Android

技术精选柳天明 发表了文章 • 38 次浏览 • 2021-05-07 15:54 • 来自相关话题

调试 我们先来看看连接及重连部分(由于录制gif比较麻烦,体积较大,所以我先把重连间隔调小成3秒,方便看效果)。 启动服务端: 启动客户端: 可以看到,正常的情况下已经连接成功了,接下来,我们来试一下异常情况,比如服务端没启动,看看客户端的重连情况: 这... ...查看全部
0
评论

开源一个自用的Android IM库,基于Netty+TCP+Protobuf实现(3) IM Android

技术精选柳天明 发表了文章 • 30 次浏览 • 2021-05-07 15:53 • 来自相关话题

TCP的拆包与粘包 什么是TCP拆包?为什么会出现TCP拆包? 简单地说,我们都知道TCP是以“流”的形式进行数据传输的,而且TCP为提高性能,发送端会将需要发送的数据刷入缓冲区,等待缓冲区满了之后,再将缓冲区中的数据发送给接收方,同理,接收方也会有缓冲区... ...查看全部
0
评论

开源一个自用的Android IM库,基于Netty+TCP+Protobuf实现(2) IM Android

技术精选柳天明 发表了文章 • 32 次浏览 • 2021-05-07 15:47 • 来自相关话题

封装 为什么需要封装呢?说白了,就是为了解耦,为了方便日后切换到不同框架实现,而无需到处修改调用的地方。举个栗子,比如Android早期比较流行的图片加载框架是Universal ImageLoader,后期因为某些原因,原作者停止了维护该项目,目前比较流行的... ...查看全部
0
评论

开源一个自用的Android IM库,基于Netty+TCP+Protobuf实现(1) IM Android

技术精选柳天明 发表了文章 • 31 次浏览 • 2021-05-07 15:46 • 来自相关话题

写在前面 一直想写一篇关于im即时通讯分享的文章,无奈工作太忙,很难抽出时间。今天终于从公司离职了,打算好好休息几天再重新找工作,趁时间空闲,决定静下心来写一篇文章,毕竟从前辈那里学到了很多东西。工作了五年半,这三四年来一直在做社交相关的项目,有 直播、 即时... ...查看全部
0
评论

一个小型合作的流水线——Android Handler handler Android

技术精选柳天明 发表了文章 • 82 次浏览 • 2021-05-07 15:44 • 来自相关话题

当我们遇到多线程的问题,考虑到线程间消息传递的时候,首先想到的肯定是 Handler。虽然写这篇文章的初衷并不是想探究 Handler 的机制,但我们还是先从这个被说烂了的话题开始。 Handler 的工作原理 首先,在了解 Handler 之前,我们需要了解... ...查看全部
0
评论

Jetpack Compose 初体验(二) jetpack Android

技术精选柳天明 发表了文章 • 35 次浏览 • 2021-05-07 15:42 • 来自相关话题

Jetpack Compose 初体验(一)二、主题 基本布局已经差不多啦,那么我们再来搞一些共性的东西,就像我们黄种人都有一样的肤色——散在土地里的黄,有种顽强,非常东方…… 以前的 View 系统其实也有关于 theme 的定义,那些被定义的 style,... ...查看全部
0
评论

Jetpack Compose 初体验(一) jetpack Android

技术精选柳天明 发表了文章 • 38 次浏览 • 2021-05-07 15:41 • 来自相关话题

你是否受够了 Android 中 UI 编写的体验——在 xml 文件中编写复杂的层级结构和繁多的属性,动态化的视图逻辑又被分裂到 Activity 中?哦,这该死的友好度和割裂感! 这两年,Flutter 大行其道,不论是网上的讨论度还是实际的落地项目,风头... ...查看全部
1
回复

请教IOS IM SDK3.7.4版 发送消息的方法封装在哪里? 环信_iOS

iOS开发yangjian 回复了问题 • 2 人关注 • 59 次浏览 • 2021-05-07 15:43 • 来自相关话题

1
回复

从库里拿到数据注册到环信上出现这种错误 环信_WebIM

WebIM 讨论区lizg 回复了问题 • 2 人关注 • 74 次浏览 • 2021-05-07 15:29 • 来自相关话题

0
评论

iOS 列表界面如何优雅实现模块化与动态化 iOS开发

iOS开发九漏鱼 发表了文章 • 53 次浏览 • 2021-05-07 11:48 • 来自相关话题

前言去年做了一个小组件,前些时间考虑到项目中可能会大规模实施,完善简化后新开了一个 repo: YBHandyList 。有些朋友抛出了 nimbus、IGListKit 等业界应用很广的库,前些时间网易工程师也推出了 M80TableViewComponen... ...查看全部
0
评论

iOS 应用内打开三方地图app直接导航 iOS开发

iOS开发九漏鱼 发表了文章 • 52 次浏览 • 2021-05-07 11:32 • 来自相关话题

当然因为有需求喽。疯狂试探- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS(3_0);常用地图应用的url Scheme://百度地图 baidumap //高德地图 iosamap //谷歌地图 comgo... ...查看全部
0
评论

Swift之构建非常优雅的便利API—Swift中的计算属性 iOS开发

iOS开发九漏鱼 发表了文章 • 35 次浏览 • 2021-05-07 11:27 • 来自相关话题

使Swift成为如此强大且通用的语言的主要原因在于,当我们选择在为特定问题形成解决方案时选择使用哪种语言功能时,我们通常可以使用多种选项。然而,这种多样性也可能引起混淆和争论,特别是当我们正在考虑的功能的关键用例之间没有明确的界限时。本周,我们来看看一个这样的... ...查看全部
0
评论

HashMap原理底层剖析 Java

技术精选王二蛋和他的张大花 发表了文章 • 41 次浏览 • 2021-05-07 10:41 • 来自相关话题

注意以下文章可能有描述和理解上的错误,如果出现错误请到评论区指出,我会第一时间修改问题。也希望文章能解决你的疑惑。 HashMap结构图 HashMap底层数据结构:Entry数组+链表+红黑树(JDK1.8版本) Entry+链表(JDK1.7版本)... ...查看全部
0
评论

自学编程的人,90%以上都会掉进这些坑,避开这些误区能提高N倍学习效率 程序设计

技术精选王二蛋和他的张大花 发表了文章 • 54 次浏览 • 2021-05-07 10:39 • 来自相关话题

前言 几乎每一个程序员都会走上那么一段自学的道路,尤其是在校生或进入工作岗位之后,技术的提升基本都靠自学,有的虽然是网上报班学习,但更多时候还是自己在学习,师傅引进门,修行靠个人。 有的人自学很快,几乎一个多月就能掌握一门技术,而有的人苦苦坚持,最后还是半... ...查看全部
0
评论

Tomcat源码学习第4篇-Servlet请求分析 tomcat Java

技术精选王二蛋和他的张大花 发表了文章 • 30 次浏览 • 2021-05-07 10:37 • 来自相关话题

前段时间家里有事忙,停更了好长一段时间,这里跟等待更新的小伙伴们说一声抱歉,没能提前说明一下,让小伙伴们等了这么久,真的不好意思! 前面说完了Tomcat的初始化和启动步骤,那么接下来就要进入重头戏了!在本篇文章中,我会跟前面一样,通过图文的方式来带着小... ...查看全部
0
评论

iOS 类簇(class clusters) iOS开发

iOS开发编程扫地僧 发表了文章 • 21 次浏览 • 2021-05-07 10:36 • 来自相关话题

类簇(class clusters)类簇是Foundation framework框架下广泛使用的一种设计模式。它管理了一组隐藏在公共抽象父类下的具体私有子类。没有使用类簇(Simple Concept but Complex Interface)为了说明类簇... ...查看全部
0
评论

iOS -开发SDK的技巧 iOS开发

iOS开发编程扫地僧 发表了文章 • 36 次浏览 • 2021-05-07 10:36 • 来自相关话题

本文目标:掌握封装及开发SDK的全部技巧内容提要:不同场景下如何封装及开发SDK.a静态库创建直接创建Framework库在已有工程中创建创建Framework工程进行封装创建Bundle资源库文件含界面SDK如何进行依赖开发使用脚本创建Framework库,... ...查看全部
0
评论

7大程序设计原则 程序设计

技术精选王二蛋和他的张大花 发表了文章 • 33 次浏览 • 2021-05-07 10:35 • 来自相关话题

编程的工作既是技术活,也是体力活,而编写优秀的软件,更是一件比较难的事情。 初级程序员只希望代码不出错,顶级程序员却把写代码当成艺术,当年雷军以过人的能力成为求伯君的左膀右臂,其早年的代码被说成“像诗一样优美”。 很多大牛,在着手写代码时并不是直接上手... ...查看全部
0
评论

Android界面左右滑动切换 Android

技术精选王二蛋和他的张大花 发表了文章 • 26 次浏览 • 2021-05-07 10:33 • 来自相关话题

Android 界面左右滑动切换 1.界面布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://... ...查看全部
0
评论

乐观锁VS悲观锁 Android

技术精选王二蛋和他的张大花 发表了文章 • 27 次浏览 • 2021-05-07 10:12 • 来自相关话题

乐观锁 VS 悲观锁 悲观锁:总是假设最坏的情况,每次取数据时都认为其他线程会修改,所以都会加锁(读锁、写锁、行锁等),当其他线程想要访问数据时,都需要阻塞挂起。 乐观锁:总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此... ...查看全部
1
评论

面试官:说说什么是Java内存模型(JMM)? Android

技术精选王二蛋和他的张大花 发表了文章 • 34 次浏览 • 2021-05-07 10:10 • 来自相关话题

1. 为什么要有内存模型? 1.1. 硬件内存架构 1.2. 缓存一致性问题 1.3. 处理器优化和指令重排序 2. 并发编程的问题 3. Java 内存模型 3.1. Java 运行时内存区域与硬件内存的关... ...查看全部