首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏架构师之路

    im协议设计选型(上)

    im协议设计选型(上) 周末在一个Qcon群里分享了一些im技术,抽取出其中im协议选型相关的内容,跟大家分享。 分享人:58沈剑,58同城技术委员会主席,高级架构师,优秀讲师。 (1)语法:即数据与控制信息的结构或格式 (2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应 (3)时序:即事件实现顺序的详细说明 今天的重点是在“协议选型”上,重点讲选哪种协议。 im协议设计分为三层:应用层、安全层、传输层。 ? 后文将详细介绍这三层的协议应该如何选型与设计。 二、im应用层协议设计 应用层协议选型,常见的有三种:文本协议、二进制协议、流式XML协议。 只要服务端实现了s2s服务(server to server) ,不过现在的im基本没有互通需求 ,所以这个服务基本没有人实现。 ps:文本只介绍了im协议选型,只是协议设计的上半部分,选型完之后,协议细节如何设计也没有展开讲,后续会撰文讨论《im协议设计细节(下)》。

    1.5K110发布于 2018-03-01
  • 来自专栏Sorrower的专栏

    CV预备(二): im2col与col2im

    目录 前言 im2col col2im 最后 ---- 前言 Matlab矩阵处理的函数真的是太多了, 这里来看两个矩阵重排的函数im2col与col2im. ---- im2col 这里有3种形式 , 如下: B = im2col(A, [m n]) B = im2col(A, [m n], 'sliding') B = im2col(A, [m n], 'distinct') B = im2col(A, [m n]) 和 B = im2col(A, [m n], 'sliding') 是等价的. ---- col2im col2im就是im2col的逆过程. col2im有3中形式, 如下: A = col2im(B, [m n], [M N]) A = col2im(B, [m n] , [M N], 'sliding') A = col2im(B, [m n], [M N], 'distinct') 还是和im2col相似, A = col2im(B, [m n], [M N])

    1.6K10发布于 2019-05-15
  • 来自专栏即时通讯技术

    移动端IM系统的协议选型:UDP还是TCP?

    从PC时代的IM开始,IM开发者就在为数据传输协议的选型争论不休(比如:《为什么QQ用的是UDP协议而不是TCP协议?》这样的问题,隔一段时间就能在社区里看到)。 (本文同步发布于:http://www.52im.net/thread-33-1-1.html) 2、学习交流 - 移动端IM开发推荐文章:《新手入门一篇就够:从零开发移动端IM》 3、参考资料 《为什么 《UDP中一个包的大小最大能多大》 《基于TCP协议的移动端IM仍然需要心跳保活机制》 《NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等》 《计算机网络通讯协议关系图(中文珍藏版)》 《理论经典 而移动互联网,由于涉及到无线电话网络基站、2G、3G和4G技术的不断发展,其稳定性、带宽、资源分配等各方面虽日趋完善,但当前终究还有不少问题的存在。 如果提供的网络服务不是基于流的服务,也允许一定的失败机率(例如P2P),则UDP往往是更适合的方式。

    2.3K10发布于 2018-08-23
  • 2026年IM(即时通讯)厂商如何选型

    在移动互联网深度渗透的背景下,即时通讯(IM)早已从“功能模块”演变为“基础设施能力”。 当前国内IM市场已形成多家成熟厂商并存的格局,环信、融云、网易云信、腾讯云IM等均具备较强技术沉淀与行业覆盖能力。 (一)高效率接入:缩短研发周期的工程化能力对于研发团队而言,IM选型的首要指标往往是“集成成本”。 腾讯云IM继承QQ与微信的通信技术积累,与腾讯生态体系高度协同,在社交、电商场景具备生态优势。总结:如何做IM技术选型IM选型本质上是对稳定性、扩展性、合规能力与研发效率的综合权衡。 选型中具备更全面的适配能力。

    25010编辑于 2026-02-22
  • 来自专栏IT技术精选文摘

    IM系统的MQ消息中间件选型:Kafka还是RabbitMQ?

    1、前言 在IM这种讲究高并发、高消息吞吐的互联网场景下,MQ消息中间件是个很重要的基础设施,它在IM系统的服务端架构中担当消息中转、消息削峰、消息交换异步化等等角色,当然MQ消息中间件的作用远不止于此 但市面上的MQ消息中间件产品很多,作为IM系统中必不可少的一环,我们该如何选型?那么请继续阅读本文。 2 后加 1 了,造成了数据不一致。 6、具体技术选型指标2:性能 功能维度是消息中间件选型中的一个重要的参考维度,但这并不是唯一的维度。 如果不是 KPI 的压迫可以先考虑下这 2 个问题:1. 目前市面上的消息中间件是否都真的无法满足目前业务需求? 2. 团队是否有足够的能力、人力、财力、精力来支持自研?

    2K30发布于 2018-06-22
  • 来自专栏即时通讯技术

    IM系统的MQ消息中间件选型:Kafka还是RabbitMQ?

    但市面上的MQ消息中间件产品很多,作为IM系统中必不可少的一环,我们该如何选型?那么请继续阅读本文。 2 后加 1 了,造成了数据不一致。 7、具体技术选型指标2:性能 功能维度是消息中间件选型中的一个重要的参考维度,但这并不是唯一的维度。 :32人工程团队创造的技术神话》 《微信朋友圈千亿访问量背后的技术挑战和实践总结》 《王者荣耀2亿用户量的背后:产品定位、技术架构、网络方案等》 《IM系统的MQ消息中间件选型:Kafka还是RabbitMQ >> 更多同类文章 …… [2] IM开发热点问题文章: 《移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”》 《移动端IM开发者必读(二):史上最全移动弱网络优化方法总结》

    2.4K30发布于 2018-08-29
  • 来自专栏给永远比拿愉快

    Python中如何实现im2col和col2im函数(sliding类型)

    今天来说说im2col和col2im函数,这是MATLAB中两个内置函数,经常用于数字图像处理中。其中im2col函数在《MATLAB中的im2col函数》一文中已经进行了简单的介绍。 一般来说: 如是将图像分割成块的时候用的im2col参数为’distinct’,那么用col2im函数时参数也是’distinct’,即可将转换后的数组复原。 (mtx, (2, 3)) print('im2col(分块大小2x3):') print(a1) b1 = col2im(a1, (5, 5), (2, 3)) print ('col2im复原:') print(b1) a2 = im2col(mtx, (3, 3)) print('im2col(分块大小3x3):') print(a2) b2 = col2im(a2, (5, 5), (3, 3)) print('col2im复原:') print(b2) 运行结果: 原始矩阵: [[ 48. 38. 38

    1.8K20发布于 2019-01-22
  • 来自专栏Lambda

    IM系统的MQ消息中间件选型:Kafka还是RabbitMQ?

    IM系统的MQ消息中间件选型:Kafka还是RabbitMQ? 1、前言 在IM这种讲究高并发、高消息吞吐的互联网场景下,MQ消息中间件是个很重要的基础设施,它在IM系统的服务端架构中担当消息中转、消息削峰、消息交换异步化等等角色,当然MQ消息中间件的作用远不止于此 但市面上的MQ消息中间件产品很多,作为IM系统中必不可少的一环,我们该如何选型?那么请继续阅读本文。 2 后加 1 了,造成了数据不一致。 下表是对 Kafka 与 RabbitMQ 功能的总结性对比及补充说明: image image image 7、具体技术选型指标2:性能 功能维度是消息中间件选型中的一个重要的参考维度

    1.3K20编辑于 2022-04-13
  • 来自专栏AI系统

    【AI系统】Im2Col 算法

    Im2Col 是计算机视觉领域中将图片转换成矩阵的矩阵列的计算过程。 Im2Col+Matmul 方法主要包括两个步骤: 使用 Im2Col 将输入矩阵展开一个大矩阵,矩阵每一列表示卷积核需要的一个输入数据,按行向量方式存储。 2. 这个重排操作是 Im2Col 算法的核心部分。 后处理阶段:在卷积操作完成后,如果需要,推理引擎可能会将数据从 Im2Col 格式转换回原始格式。 Im2Col 算法总结 Im2Col 计算卷积使用 GEMM 库的代价是额外的内存开销。 和 Col2Im 操作。

    1.6K10编辑于 2024-12-17
  • 来自专栏即时通讯技术

    探探的IM长连接技术实践:技术选型、架构设计、性能优化

    本文将要分享的是陌生人社交应用探探的IM长连接模块从技术选型到架构设计,再到性能优化的整个技术实践过程和经验总结。 学习交流: - 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》 - 开源IM框架源码:https://github.com/JackJiang2011/MobileIMSDK 2、关于作者 (▲ 上图引用自《移动端IM/推送系统的协议选型:UDP还是TCP?》) TCP实现长连接的四个问题: 1)移动端的消息量还是比较稀疏,用户每次拿到手机之后,发的消息总数比较少,每条消息的间隔比较长。 (本文已同步发布于:http://www.52im.net/thread-3780-1-1.html) 14、参考资料 [1] 移动端IM/推送系统的协议选型:UDP还是TCP? [2] 5G时代已经到来,TCP/IP老矣,尚能饭否? [3] 为何基于TCP协议的移动端IM仍然需要心跳保活机制?

    2K20编辑于 2021-12-14
  • 来自专栏给永远比拿愉快

    Matlab中的im2col函数

    函数原型为: B = im2col(A,[m n],block_type)block_type的取值可以为'distinct'或者'sliding'。 A = 1 2 3; 4 5 6; 7 8 9 A = 1 2 3 4 5 6 7 8 9 B = im2col(A, 2 2, 'distinct 0 & 6 & 0 \\ 2 & 8 & 0 & 0 \\ 5 & 0 & 0 & 0\end{bmatrix} 将矩阵$A$分割成的四个子矩阵是: \begin{bmatrix} 1 & 2 \ >> B = im2col(X, [2 2], 'sliding') B = 1 4 2 5 4 7 5 8 2 5 3 6 5 8 6 9 B = \begin{bmatrix} 1 & 4 & 2 & 5 \\ 4 & 7 & 5 & 8 \\ 2 & 5 &

    1.9K40发布于 2019-01-22
  • 来自专栏GiantPandaCV

    【详细图解】再次理解im2col

    一句话:im2col是将一个[C,H,W]矩阵变成一个[H,W]矩阵的一个方法,其原理是利用了行列式进行等价转换。 为什么要做im2col? 减少调用gemm的次数。 重要:本次的代码只是为了方便理解im2col,不是用来做加速,所以代码写的很简单且没有做任何优化。 = im2col_kernel.reshape(-1,9) OutScrIm2Col = OutScrIm2Col.T out = np.matmul(im2col_kernel,OutScrIm2Col >) 四、[C, H, W]的im2col 在这里插入图片描述 前面一堆图,是我故意不写文字,希望大家能够通过图能够看明白。 问题:如何bs=9的情况呢,要怎么做im2col+gemm呢?

    4.6K41发布于 2021-10-20
  • 来自专栏用户4215420的专栏

    即时通讯(im)框架系统开发思考(1)-通讯协议选型

    1.前言: 近来笔者接到公司的一个IM开发需要,要在原来的Web业务系统、移动端系统上加入一个即时聊天的功能,具有就是能聊天就行。 相信各位也会接到需要开发IM的系统的任务,那么,开发一个im系统应选用哪种通讯协议? 2.思考-即时聊天选用的通讯协议选哪种: XMPP(可扩展消息与存在协议): 是一个成熟开源的即时聊天协议, 基于XMPP的开源技术有openfire(后台端), spark(客户端) 优势: 比较成熟的聊天协议 基于发布订阅模式; 2. 为网络不可靠的环境下提供一套消息重传协议.3. 基于TCP/IP, 消息载体轻, 耗电量小. 优势: 已实现消息丢失重传功能, 消息载体轻, 耗电量小. 开发成本高,如要支持多个平台, 每个客户端都需要定制,IM方面的开源社区不活跃,技术文档少。 跨平台: 差, 每个客户端都需要实现MQTT的聊天协议。

    3.3K00发布于 2020-06-14
  • 来自专栏即时通讯技术

    IM跨平台技术学习(三):vivo的Electron技术栈选型、全方位实践总结

    2、系列文章本文是系列文章中的第3篇,本系列总目录如下:《IM跨平台技术学习(一):快速了解新一代跨平台桌面技术——Electron》《IM跨平台技术学习(二):Electron初体验(快速开始、跨进程通信 、打包、踩坑等)》《IM跨平台技术学习(三):vivo的Electron技术栈选型、全方位实践总结》(* 本文)《IM跨平台技术学习(四):蘑菇街基于Electron开发IM客户端的技术实践》(稍后发布 .. )《IM跨平台技术学习(五):融云基于Electron的IM跨平台SDK改造实践总结》(稍后发布.. )《IM跨平台技术学习(六):网易云信基于Electron的IM消息全文检索技术实践》(稍后发布 Electron本地数据库技术选型考虑因素主要有:1)生态(使用者数量、维护频率、版本稳定度);2)能力;3)性能;4)其他(和使用者技术匹配度)。 基础入门 简单明了,看完啥都懂了[5] 网易云信Web端IM的聊天消息全文检索技术实践学习交流:- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》 - 开源IM框架源码:https:

    2K31编辑于 2022-09-29
  • 来自专栏本立2道生

    im2col:将卷积运算转为矩阵相乘

    目录 im2col实现 优缺点分析 参考 博客:blog.shinelee.me | 博客园 | CSDN im2col实现 如何将卷积运算转为矩阵相乘?

    2.8K10发布于 2019-04-27
  • 来自专栏计算机视觉CV

    深度理解卷积--使用im2col实现卷积

    im2col im2col算法原理 im2col就是把图像转化为列向量,很多文章都有讲解,https://zhuanlan.zhihu.com/p/63974249 链接讲的比较详细。 上图就是im2col的原理,把一个矩阵转化为一行。 同样,我们把卷积核也按im2col进行转化 ? 根据矩阵相乘的定义,两个结果是一致的,但im2col肯定是优化版的卷积过程~ 通过上面几个图,大家应该就就了解了什么叫im2col,以及它如何实现卷积了。 下面简单直接~上代码 im2col实现卷积代码实现 对于基础知识reshape和transpose的加深理解这里 下面我们直接写im2col的代码,注释已经比较详细 def im2col(inputs

    2.9K20发布于 2021-01-29
  • 来自专栏AIUAI

    Matlab矩阵子块转列函数: im2col

    函数原型:B = im2col(A,[m n],block_type) 功能:将矩阵A分为m×n的子矩阵,再将每个子矩阵作为B的一列。 39   95  99   83   50  70    69   33  77   33   51  79   19  58  B=im2col(A, [3, 3], 'distinct')为: 例:A=    21   11  62    95   14  57     8   17   5 B=im2col(A, [2, 2], 'sliding')为    21   95  11 根据A为3×3和子块为2×2,最多可构成B的列数为((3-2)+1)×((3-2)+1)=4,列长(行数)为2×2=4。 应用实例——对矩阵进行m×n分块,用子块的和生成新矩阵。 B = im2col(A,[m n],'sliding'); C = reshape(sum(B),mm-m+1,nn-n+1);

    62660发布于 2019-02-18
  • 来自专栏Yangsh888的专栏

    【云端选型2.云模式&选择指南

    一般认为,IaaS始于亚马逊的EC2和S3两款产品。近两年,我们说的云计算快速落地,其实主要就是指IaaS的迅速落地。

    1.7K20编辑于 2022-03-19
  • 来自专栏JavaEdge

    【大厂消息队列】面试解析(2)-MQ选型

    1 选型标准 1.1 开源(白嫖) 方便可以修改源代码,而非一味地等待软件提供商猴年马月发布的下个版本解决。在知识产权下,使用开源的才可商用。 看完标准,于是市面上主要就如下可供选择: 2 RabbitMQ 2.1 优点 Erlang语言编写,最早是为电信行业系统可靠通信设计,是支持AMQP协议的消息队列之一。 kafka、activemq、rabbitmq、rocketmq对比 5 选型总结 最早大家都用ActiveMQ,但是现在用的不多了,没经过大规模吞吐量场景的验证,社区也不是很活跃,算了吧,不推荐 后来大家开始用

    91630编辑于 2022-11-30
  • 来自专栏全栈程序员必看

    matlab中的im2bw函数_matlab中tofloat

    [BW2,locations] = imfill(BW) 这种方式, 将返回用户的取样点索引值。注意这里索引值不是选取样点的坐标。 BW2 = imfill(BW,’holes’) 填充二值图像中的空洞区域。 如, 黑色的背景上有个白色的圆圈。 则这个圆圈内区域将被填充。 I2 = imfill(I) 这种调用格式将填充灰度图像中所有的空洞区域。 BW2 = imfill(BW,locations,conn) 程序示例 close all; clear; clc; BW4 = im2bw(imread(‘coins.png’)); BW5 = imfill = imfill(BW,locations,conn) 程序示例 close all; clear; clc; BW4= im2bw(imread(‘coins.png’)); BW5= imfill(

    1.7K30编辑于 2022-09-30
领券