即时通讯软件协议选择

im即时通讯开发:浅析MQTT通信协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。 MQTT是轻量级基于代理的发布/订阅的消息传输协议,它可以通过很少的代码和带宽和远程设备连接。例如通过卫星和代理连接,通过拨号和医疗保健提供者连接,以及在一些自动化或小型设备上,而且由于小巧,省电,协议开销小和能高 阅读详情
          项目启动之前的准备会议都开了几天了,但是一直困扰于一个问题——联网的方式(Tcp/Ip与Http之间选择),如果这个问题不解决,后面的具体通信协议就没有办法确定(旧的协议里面有大量的服务端主动通信动作,这在Http下是不能完成的)。所以现在首要的问题是确定网络连接类型,根据这几天的讨论,我总结于下:


          Tcp/Ip优点:1.速度快 2.老的协议是基于Tcp/Ip的,可以很容易的兼容,修改较少 3.客户端程序编写相对容易


          Tcp/Ip缺点:不能满足使用代理(cmwap)上网的用户,这是因为cmwap只支持Http和Wap协议(或者换句话说只支持短连接,但是即时通讯软件本身更适合长连接)。


           Http优点:可以满足所有联网类型,意思是基本可以保证在所有手机上我们的软件都可以运行(Iphone待定)。


           Http缺点:1.联网速度慢 2.服务端改动较大,很多逻辑都要重新设定 3.服务端连接压力大,这是因为在Http协议下,为了保证消息的即时性,客户端必须不断的轮询(而且假定10秒请求一次,那么很有可能出现这样的情况:一条新的消息在间隔15秒以后才出现在客户端) 4.据外包团队技术人员说:Iphone手机上,如果是Http连接,那么程序处于后台挂起的时候,程序是不运行的(这一点是不可接受的,等于退出了),我们自己的技术人员提出了一种解决方案,但是还没有得到验证。



          总结有以下的解决办法:
         1.采用Tcp/Ip长连接,那么以代理方式上网的手机就只有舍弃(这种类型的用户不多,但是肉少,也是肉啊)。说明:在Android中,程序可以控制用户手机的联网类型,意思就是我们程序中可以把cmwap联网的手机修改为cmnet,然后Tcp/Ip协议就可以使用了。但是这样的后果是某些地区(运营商在各个地区的流量收费方式不同,比如上海现在的cmwap和cmnet收费一样,但是其他地区可能cmnet收费高于cmnet)用户的流量费将“相当可观”,补充方案是在软件启动的时候提示用户,本软件将采用cmnet联网,会产生“一定”的流量费,由运营商收取。在Iphone中,我不清楚该平台是否支持程序控制接入点(接入点即联网类型)。但是早期的Iphone版QQ是不支持cmwap联网的(至少2.5之前的版本不支持,2.5+支持cmwap连接,但是网上还是有很多网友反馈cmwap不能登录QQ,没有可靠来源)。


         2.采用Http连接,所有手机都可以联网(Iphone挂起以后暂时不确定)。说明:Http连接可以通过头设置分为长连接和短连接,我们可以根据用户的手机联网方式选择。长连接的话,和Tcp/Ip基本完全一样,短连接就是通常的Http连接(满足上面分析的Http优点和缺点)。这个方案暂时有两个问题:1.服务器端要适配两种类型的协议,不少业务都要分两种处理逻辑 2.在Http长连接的情况下,暂时不确定Iphone挂起以后,程序会不会假死(就是不运行)


        3.据网友反馈:腾讯采用的是Tcp/Ip协议,但是它花钱“买通”了运营商,运营商的代理网关支持腾讯的长连接。在用户是cmwap联网的方式下,也不会有任何问题。


       4.模仿QQ联网方式
Iphone版QQ早期是不支持cmwap的,2.5以后才是支持。由于不能看到源码,通过网上资料显示:手机QQ早期版本基于Tcp/Ip,后期开始支持Http。
从零开始搭建一个类似微信的即时通讯软件 【代码】从零开始搭建一个类似微信的即时通讯软件。 阅读详情

相关推荐

打造高效企业即时通讯软件实战指南

即时通讯软件作为现代通讯不可或缺的一部分,它依靠网络技术实现用户间的即时消息传递和多媒体信息交互。随着互联网技术的飞速发展,即时通讯软件的功能不再局限于文本消息,还包括语音、视频通话、文件共享等多种形式。本章将带领读者了解即时通讯软件的基本概念,以及它在现代生活和工作中所扮演的角色。我们将探讨即时通讯软件的组成要素,包括客户端、服务端、通信协议等,并简要分析这些技术如何协同工作,确保信息能够迅速、准确地在用户之间传递。

weixin_33240461的博客 1137

即时通讯协议对比

本章主要介绍了市面上可供即时通讯选型的多种技术方案,包括http,Websocket,xmpp,mqtt,socket.io 以及自定义的TCP/UDP协议等。并在最后介绍了"E聊SDK"的通讯方案选型的考虑,以便打造一个现代化即时通讯应用。深入浅出即时通讯(1)_即时通讯协议对比_即时通信协议_E聊SDK的博客-优快云博客。

顺其自然~专栏 1481

iWebIM即时通讯软件 v1.0 beta2 版本测试与技术要点

即时通讯(IM)软件是现代互联网应用中不可或缺的一部分,它允许用户通过计算机或移动设备实时交换消息。随着技术的发展,开源IM软件逐渐受到业界的关注,因其开放性、可定制性和社区支持的优势,它成为了许多企业和开发者构建通信解决方案的首选。iWebIM v1.0 beta2是当前开源即时通讯领域的一款创新产品,它集成了前沿的网络技术与用户友好的设计,旨在提供稳定、安全且易于使用的即时通讯解决方案。在本章中,我们将深入探讨iWebIM的特性、应用场景以及它在当前市场中的定位。

weixin_42611177的博客 689

深入浅出即时通讯(1)_即时通讯协议对比

1. 即时通讯协议对比 业界上用来做即时通讯的解决方案有:1. 基于http 的轮询; 2. 基于websocket 长连接; 3. 基于tcp或udp的自定义协议, 这种若在要在Web端使用, 需要套一层websocket 封装. 此外早期还有基于Comet 技术的长连接,基于xmpp 的开源客户端应用等。 1.1 即时通讯协议比较 名称 特点 Web支持 模式 http短轮询/长轮询 实现简单; 开销大,耗费服务器性能与带宽 支持 请求-响应 Websocket 连接快,开销小 支持

kong_dzq的博客 2017

揭秘QQ2009登录协议与源码解析

在设计二进制数据传输格式时,首先需要考虑几个核心要素,包括数据传输效率、数据表示的准确性、以及兼容性问题。二进制格式通常比文本格式(如XML或JSON)在数据传输上更加高效,因为它直接由0和1构成,无需经过编码和解码,从而减少开销,提高传输速度。在确定了二进制格式后,设计者需要定义一系列规则来规范数据的排列和解释方式。这些规则包括数据类型(整型、浮点型、字符串等)、字节序(大端序、小端序)、以及字段的长度等。每条数据通常由一个固定长度的头部开始,头部包含必要的信息用于解析接下来的数据内容。

weixin_36001279的博客 899

Socket编程-即时通讯工具-基于TCP和UDP协议-包括服务器端和客户端

资源包括源代码和报告。在源代码中,需要对IP进行修改以测试。 基于TCP和UDP协议实现的一个即时通讯工具,具体功能包括: 工具包括服务器端和客户端; 具备用户注册、登录、找回密码功能(基于TCP协议); 两个用户如果同时在线,采用点到点通信方式进行聊天,信息不需要通过服务器中转,服务器也不保存(基于TCP协议); 支持离线消息(基于TCP协议); 支持点到点可靠文件传输(基于UDP协议); 存储在服务器端的数据需要进行强加密; 支持不少于两组用户同时在线交流和传输文件; 文件传输具有良好的性能,能够充分利用网路带宽; 人机交互友好,软件易用性强。

物联网8大协议介绍及对比

物联网8大协议介绍及对比 1.MQTT 协议 MQTT(Message Queuing Telemetry Transport)即消息队列遥测传输。 2.CoAP 协议 3.HTTP 协议 4.AMQP 5.websocket 6.XMPP协议 7.DDS协议 8.LwM2M协议 从当前物联网应用发展趋势来分析,MQTT协议具有一定的优势,因为目前国内外主要的云计算服务商,比如阿里云、AWS、百度云、Azure以及腾讯云都一概支持MQTT协议。

热土程序园,利他愉己~ 1万+

modbus-esp8266库深度解析:工业级Modbus协议栈实现

Modbus是一种广泛应用于工业自动化领域的通用串行通信协议,其核心在于标准化的功能码、寄存器模型与帧结构设计。基于RTU、ASCII和TCP三种传输变体,Modbus协议通过主从架构实现设备间可靠数据交互,具备低开销、高兼容性与强实时性等技术价值。在边缘计算与工业物联网场景中,它被广泛用于PLC通信、传感器数据采集、HMI集成及远程固件升级(FOTA)等关键任务。针对ESP8266/ESP32等Wi-Fi微控制器平台,modbus-esp8266库提供了完整协议栈支持,涵盖多实例并发、回调驱动架构、零拷贝

weixin_42315569的博客 349

即时通讯

即时通讯: 一:使用第三方的即时通讯,底层协议都是tcp,(qq为udp协议) 二:自己写比如socket,webscoket。MQTT   XMPP。   1:如果自己写的话 首先要考虑的就是通讯协议,tcp or udp。    http://baike.baidu.com/link?url=Dtddxdf5GQVYDgaS4bBJLVa016rGGhxzbWYrdeEiQkpGR_W...

u011518806的博客 4524

服务器报错:“Unhealthy status reported by this UEFI driver without specific error message”.. 记录解决过程

服务器开机报错:Unhealthy status reported by this UEFI driver without specific...

ayychiguoguo的博客 4398

Python小白也能玩转迅投QMT量化交易?手把手教你从安装到第一个策略

本文为零基础Python用户提供了上手迅投QMT量化交易平台的完整指南。从Python 3.6环境配置、QMT客户端获取安装,到核心概念讲解,并手把手教你编写并回测一个经典的双均线交易策略,帮助初学者快速迈出量化交易的第一步。

weixin_29103191的博客 763

Veritas最新调研:超过七成员工曾使用即时通讯软件分享公司敏感数据

Veritas最新调研报告显示,员工正削弱企业对公司数据的管控力 数据管理实践应与信息共享的发展实现同步,否则企业将面临合规和数据安全的风险 北京 – 2021年3月10日 –今日,全球数据保护及数据管理领域的领导者Veritas Technologies发布了Veritas Hidden Threat of Business Collaboration Report(Veritas商业协作...

cover_se的博客

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 420

企业该如何选择即时通讯软件?

在数字化时代,即时通讯软件已成为企业日常运营中不可或缺的工具,企业资产也全面转向数字化形态,选择一款能够保障企业数据安全的即时通讯软件至关重要。它不仅关乎企业内部信息的高效流转,更直接影响到企业核心数据的安全与保密。那么,国内有哪些安全可靠的即时通讯软件呢?

2501_90977990的博客 378

AFSim 2.9实战指南:从入门到精通的中文教程

本文是AFSim 2.9的实战指南,提供从零开始的中文教程。内容涵盖仿真环境搭建、实体行为控制、脚本编写,到传感器、武器系统集成与复杂想定构建,最后讲解数据记录与结果分析方法,帮助用户快速掌握这一强大的军事仿真框架。

weixin_29281941的博客 943

DRM全解析 —— encoder详解(3)

DRM全解析 —— encoder详解(3)

phmatthaus的专栏 490

如何选择企业即时通讯软件?

如何选择企业即时通讯软件? 第一点因素是安全性 对企业而言,信息通讯的安全性是首要的,它随时都与企业的经济利益紧密相连。企业即时通讯软件所在服务器的稳定、安全以及私密性是不少企业考虑的首要因素之一。 第二点因素是移动性 随着手机逐渐弥补了电脑在移动办公方面的不足,是否拥有稳定好用的手机客户端也是一款好的企业即时通讯软件必备的特性之一。要保证用户在多个终端之间切换时的体验一致,有许多问题要考虑,诸如多端消息是否完全及时同步,不遗漏,不重复等问题。 第三点因素是使用费用 对企业来讲,投入与产出始终都是需要考虑的

guagua113的博客 382

QGis 相关技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中...)

QGis 相关技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中...)

279

给我一个设计即时通讯软件解决方案

好的。设计即时通讯软件的一种可能的解决方案如下: 首先,需要选择一种通讯协议,如 XMPP、SIP 等,来实现软件的通讯功能。 其次,需要设计软件的用户界面,方便用户登录、查看联系人列表、发送消息等。 接下来,需要考虑如何处理联系人列表和消息历史。这可以通过使用本地数据库(如 SQLite)或远程服务器来实现。 最后,考虑如何使软件具有更好的扩展性。这可以通过提供 API 接口或使用插件机...

weixin_35755823的博客 78

RK3568 上C图像camera图像采集应用实例(二)

本文探索rk3568上实现C语言的 通过C v4l2 接口 采集图像 ,刷屏控制 drm的显示camera图像中 实现camera preview 预览 的实践和探索。

luoshanxuli2010的专栏 759

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

企业内部即时通讯软件有哪些?这款IM工具值得拥有

此外,BeeWorks还支持按部门、角色、员工级别设置细粒度权限,例如限制敏感文件的下载与转发,支持消息撤回、阅后即焚等功能,进一步保障了企业数据的安全性。例如,企业可以在BeeWorks中集成现有的ERP、CRM等系统,实现数据互通,提高工作效率。此外,BeeWorks还支持轻应用和第三方应用集成,能够与企业现有的信息系统无缝对接,为企业提供一站式的办公解决方案。BeeWorks是一款专为企业设计的私有化部署即时通讯工具,它以强大的数据安全性和高度的定制化能力,为企业提供了安全、高效的沟通解决方案。

weixin_53855915的博客 433

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

即时通讯软件中容易忽略的问题,哇呼帮您解答

现在各种通讯软件出现在人们的视线中,很大一部分人只是为了聊天,并没有太在意很多细节上的问题。只有一些懂的人才会去注意那些小细节。那么有哪些问题需要注意呢,以哇呼为例,给大家介绍一下。 一、 平台采用的是什么协议模式,对于耗流量这一块做了什么处理? 哇呼平台使用的是私有协议,消息体为json,因此大幅减小流量。另外,很多常见的IM如微信、QQ均采用的是私有协议。 二、 系统采用什么框架? 哇呼系统...

sdy888的博客 292

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

服务器开发通信协议设计介绍

一、选择TCP还是UDP协议 由于我们的即时通讯软件的用户存在用户状态问题,即用户登录成功以后可以在他的好友列表中看到哪些好友在线,所以客户端和服务器需要保持长连接状态。另外即时通讯软件一般要求信息准确、有序、完整地到达对端,而这也是TCP协议的特点之一。综合这两个所以这里我们选择TCP协议,而不是UDP协议。 二、协议的结构 由于TCP协议是流式协议,所谓流式协议即通讯的内容是无边界的字节流:...

weixin_34403693的博客 801

即时通讯(IM)软件的开发

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明。否则将追究法律责任。 最近老板要求开发一款即时通讯软件,我的天啊,这该怎么办,以前根本就没有这方面的开发经验。 首先想到的就是该用什么协议。常用的http协议肯定是不行的,socket开发方面也没什么经验。因此,最好是能在网上找到开源的项目直接用上。通过查阅资料得知: 即时通讯协议(Instant Messag

midfar的专栏 2978

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

1、前言 对于有过网络编程经验的开发者来说,使用何种数据传输层协议来实现数据的通信,是个非常基础的问题,它涉及到你的第一行代码该如何编写。从PC时代的IM开始,IM开发者就在为数据传输协议的选型争论不休(比如:《为什么QQ用的是UDP协议而不是TCP协议?》这样的问题,隔一段时间就能在社区里看到)。到了移动互联网时代,鉴于移动网络的不可靠性等特点,再加上手机的省电策略、流量压缩等,...

hellojackjiang2011的博客 299
上一篇: ActivityGroup使用实例
下一篇: Iphone开发(1)环境搭建
coding_or_coded
博客等级 码龄16年 216粉丝 115原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值