首页 > 其他分享 >微信、QQ这类IM APP怎么做——谈谈WebSocket

微信、QQ这类IM APP怎么做——谈谈WebSocket

时间:2023-07-19 16:11:45浏览次数:39  
标签:QQ 协议 WebSocket Socket 微信 APP HTTP 客户端

1、WebSocket的使用场景

  (1)社交聊天

    聊天特点:低延迟,高及时。

  (2)弹幕

  (3)多玩家游戏

  (4)协同编辑

  (5)股票基金实时报价

  (6)体育实况更新

  (7)视频会议/聊天

  (8)基于位置应用

  (9)在线教育

  (10)智能家居

    家里的智能设备的状态必须要实时展现到手机APP客户端上,毫无疑问选择了WebSocket。

2、WebSocket诞生由来

  (1)最开始的轮询Polling阶段

     客户端和服务器之间会一直进行连接,每隔一段时间就会询问一次。

  (2)改进版的长轮询Long Polling阶段

     客户端发送HTTP请求A给服务器,服务器会等待下一个请求B到了之后才回将A的回复返回给客户端。

  (3)WebSocket的诞生

     现在急需的需求是能支持客户端和服务器的双向通信,而且协议的头部又不像HTTP的Header那么大,于是WebSocket就诞生了。

3、谈谈WebSocket协议原理

  WebSocket是应用层第七层的一个应用层协议,他必须依赖HTTP协议进行一次握手,握手成功后,数据就直接从TCP通道传输出去了,与HTTP无关了。

  WebSocket的数据是以frame的形式传输。

4、WebSocket和Socket的区别与联系

  首先,Socket不是一个协议。他工作在OSI模型中的第5层(会话层),是为了方便大家直接使用更底层协议(一般是TCP或者UDP)而存在的一个抽象层。Socket是对TCP/UDP协议的封装,Socket本身不是协议,只是一个调用接口(API)。

  Socket在通讯过程中,服务器监听端口是否有连接请求。客户端向服务器发送连接请求,服务端收到连接请求就给客户端发送消息,这样就建立起一个连接。客户端和服务端之后就可以互发消息了。

  所以,基于WebSocket和Socket都可以开发出IM社交聊天类的APP。

5、IOS平台有哪些WebSocket和Socket开源框架

  Socket开源框架:CocoaAsyncSocket     socketio/socket.io-chlient-swift

  WebSocket开源框架:facebook/SocketRocket      tidwall/SwiftWebSocket

6、IOS平台如何实现WebSocket

  自行百度学习。

标签:QQ,协议,WebSocket,Socket,微信,APP,HTTP,客户端
From: https://www.cnblogs.com/zgq123456/p/17565893.html

相关文章

  • huilder 无法调试微信小程序方法
    huilder无法调试微信小程序方法 npxbrowserslist@latest--update-db​14:20:29.948项目'test11'编译成功。前端运行日志,请另行在小程序开发工具的控制台查看。14:20:29.953正在启动微信开发者工具...14:20:30.328[微信小程序开发者工具]-initialize14:20:30.330[微......
  • 个人微信号API接口,微信机器人
    前段时间公司需求开发一套自定义的微信机器人,需求是可以自己批量添加好友、批量打标签等进行好友管理,社群管理需要自动聊天,自动回复,发朋友圈,转发语音,以及定时群发等,还可以提取聊天内容,进行数据汇总,收藏快捷回复各种功能…一堆需求砸下来,调研开发了3个月,3个月啊!!!终于成功了,都是走过......
  • 微信的个人号接口
    淘宝客微信机器人API接口,淘客机器人API,微信机器人API微信二次开发完整API功能文档地址:https://www.wkteam.cn/**首先了解一下微信机器人API是什么?**E云API是一个能将个人微信各项功能提取成可供开发人员调用的一套私有API接口,比如微信的收发消息,发朋友圈,群聊,建群等等都是可......
  • 使用C#与Websocket完成简单的聊天功能
    1、背景WebSocket出现之前,Web端为了实现即时通讯,所用的技术都是Ajax轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTPrequest,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTPrequest的模式带来很明显的缺点–浏览器需要不断的向服务器......
  • Comet 和 WebSocket
    众所周知,HTTP协议,是无状态的,所以不能保持持续的链接。数据交换是通过客户端提交一个Request到服务器端,然后服务器端返回一个Response到客户端来实现的。 轮询(polling)     一般情况下,通过浏览器访问一个网页,需要浏览器发送一个HTTPRequest,服务器接收到浏览器的请求......
  • WebSocket搭建一个简单的聊天室
    这个例子比较简单:只有一个聊天室,大家进入的都是同一个聊天室。 没有用户登录,用户登录直接根据id给出匿名用户。程序截图,UI我直接用的 https://github.com/Niessy/websocket-golang-chat这里给的例子的Html代码。                  服务器端Golang代码:package......
  • Go语言用WebSocket的简单例子
    Go语言标准包里面没有提供对WebSocket的支持,但是在由官方维护的go.net子包中有对这个的支持,需要独立下载, Gowebsocketpackage下载地址:http://code.google.com/p/go.net/websocket。Goget命令下载:gogetcode.google.com/p/go.net/websocket Go实现的WebSocket的文档:http://......
  • Nginx 代理 WebSocket 、TCP协议
    Nginx代理WebSocket什么是WebSocketWebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信,位于OSI模型的应用层。WebSocket中的握手和HTTP中的握手过程兼容,且可以使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。代理结构WebSocket可以工作在......
  • nginx 中根据 $http_upgrade 变量将 HTTP 连接升级为 WebSocket 连接
    配置“$connection_upgrade”变量连接升级通常与WebSockets结合使用。在nginx中,我们可以根据$http_upgrade变量将HTTP连接升级为WebSocket连接。我们可以使用map块在nginx中定义连接和http升级之间的依赖关系:vimnginx.confmap$http_upgrade$connection_......
  • 个人微信开发API,微信机器人
    ##个人微信开发API微信个人号二次开发,基于API开发可以有很多功能模块各种知名SCRM系统、客服平台都是根据此API二次开发的。 ##好友管理:添加好友、删除好友、修改备注、创建标签、获取好友列表、检测僵尸粉设置个人头像同意添加好友获取好友的信息获取自己的微信获取自......