关于即时通讯的一点记录

即时通讯实现方式:


第一类:基于应用层的协议或第三方库

1.第三方:环信,融云,推送等

2.应用层协议:

XMPP协议(推荐):

Smack(客户端)+Openfire(服务端)(基于应用层的xmpp协议,其实XMPP 是一种很类似于http协议的一种数据传输协议,它的过程就如同“解包装--〉包装”的过程,用户只需要明白它接收的类型,并理解它返回的类型,就可以很好的利用xmpp来进行数据通讯。)

MQTT协议:IBM开发的即时通讯协议。

SIP:基于SIP,增加了message和presence的扩展。

私有协议:ActivitySync


第二类:基于传输层的协议

3.Socket(推荐):基于 传输层的TCP/IP协议。三次握手建立连接,四次挥手断开连接。可以自己实现

或者用第三方Socket组件,如Nio可以管理通讯过程中断开、闲置、打开、创建等过程。工具:TCP/UDP Socket调试工具

4.Udp:带ip和port的包直接发送到服务器,不安全,容易丢包


OSI七层:开放式系统互联。 网络互联七层框架:应用层、表示层、会话层 、传输层、网络层、数据链

路层、物理层。

常说的TCP/UDP协议属于传输层,Http、xmpp等属于应用层,后者依赖前者。

socket属于网络的哪个层?
传输层。应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的

问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应

用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接


SOCKET与TCP,UDP有什么关系

SOCKET是Java实现数据通信的API。
这个词语起源于BSD相关的UNIX,程序开发中用于process之间通信的API名称。

TCP/UDP是OSI模型的第四层中定义的两种通信方式。

也就是说,SOCKET是API,而TCP/UPD是通信协议,两种根本不同的东西。

语言表达的例子:
用SOCKET实现TCP(或者UDP)通信。 (相反,TCP或者UDP通信也可以不使用SOCKET实现)

你可能感兴趣的:(关于即时通讯的一点记录)