美文网首页Objective-c
如何利用socket实现即时通讯简介

如何利用socket实现即时通讯简介

作者: Coder东 | 来源:发表于2017-02-28 10:05 被阅读71次

以前写即时通讯的时候总是利用第三方环信去实现,当然这也是最直接最便捷的方法。不过最近闲来无事所以想了解下底层的socket如何和xmpp关联到底如何实现的呢?探索之路,有错必纠!!!

利用环信方法:

EaseUI 使用指南 [环信开发文档]

首先介绍XMPPFramework环境配置:

XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开发。

XMPP的地址叫做JabberID(简写为JID),它用来标示XMPP网络中的各个XMPP实体。JID由三部分组成:domain,node identifier和resource。JID中domain是必不可少的部分。注意:domain和user部分是不分大小写的,但是resource区分大小写。

XMPP通信原语有3种:message、presence和iq。

1、message message是一种基本推送消息方法,它不要求响应。主要用于IM、groupChat、alert和notification之类的应用中。 主要 属性如下: 1)、type属性,它主要有5种类型:

normal:类似于email,主要特点是不要求响应;

chat:类似于qq里的好友即时聊天,主要特点是实时通讯;

groupchat:类似于聊天室里的群聊;

headline:用于发送alert和notification;

error:如果发送message出错,发现错误的实体会用这个类别来通知发送者出错了;

2)、to属性:标识消息的接收方。 3)、from属性:指发送方的名字或标示。为防止地址外泄,这个地址通常由发送者的server填写,而不是发送者。 2、presence presence用来表明用户的状态,如:online、away、dnd(请勿打扰)等。当改变自己的状态时,就会在stream的上下文中插入一个Presence元素,来表明自身的状态。要想接受presence消息,必须经过一个叫做presence subscription的授权过程。 3、iq(Info Query) 一种请求/响应机制,从一个实体从发送请求,另外一个实体接受请求,并进行响应。例如,client在stream的上下文中插入一个元素,向Server请求得到自己的好友列表,Server返回一个,里面是请求的结果。

主要的属性是type。包括:

Get :获取当前域值。类似于http get方法。

Set :设置或替换get查询的值。类似于http put方法。

Result :说明成功的响应了先前的查询。类似于http状态码200。

Error: 查询和响应中出现的错误。

二、开发环境配置 主要用到的工具软件有Openfire,mysql,jdk,Navicat,spark等,这些在网上都可以下载到。接下来就可以安装了: 第一步:安装jdk  一步一步点击就可以了。 第二步,安装mysql。 都安装好之后,会在偏好设置里面看到以下三个:

openfire 是开源的、基于可拓展通讯和表示协议(XMPP)、采用Java编程语言开发的实时协作服务器。 Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。

相关文章

  • 如何利用socket实现即时通讯简介

    以前写即时通讯的时候总是利用第三方环信去实现,当然这也是最直接最便捷的方法。不过最近闲来无事所以想了解下底层的so...

  • 用NodeJS+Nginx打造可扩展聊天服务

    利用Nodejs实现即时通讯的选择最常见的就是socket.io, 首先来说说socket.io 优势: 1. 上...

  • (四)即时通讯系列之XMPP简介

    前面关于即时通讯基础Socket,大家学习使用XMPP之前可以先看看即时通讯系列之Socket简介 前言 前段时间...

  • (二)即时通讯系列之TCP Socket

    即时通讯系列之Socket简介 一、Socket连接 1.连接过程 建立Socket连接至少需要一对套接字,其中一...

  • 即时通讯

    即时通讯 1.实现通讯功能 (1)即时通信可以用socket实现,成本肯定比较大 (2)使用xmpp实现即时通讯功...

  • xmpp

    即时通讯不用环信,融云, 自己写的话, 就直接用到socket,是很复杂的。 socket简介 1.sock...

  • IOS开发_Socket通讯

    1、socket简介; 2、IOS中socket的实现; 1、socket简介; 1.1 概念:套接字(s...

  • (三)即时通讯系列之UDPSocket

    即时通讯系列之Socket简介 转自他人 1. UDP Socket编程 先讲一讲UDP编程,因为比TCP要简单多...

  • 基于CocoaAsyncSocket实现即时通讯

    最近项目中用到了即时通讯,之前用到是腾讯的即时通讯SDK,但是这次技术老大想让我们自己用socket实现,于是就研...

  • Socket 编程之 BIO

    本文介绍基于 BIO 实现 Socket 编程的方法及问题。 目录 BIO 简介 BIO Socket 代码示例 ...

网友评论

    本文标题:如何利用socket实现即时通讯简介

    本文链接:https://www.haomeiwen.com/subject/yheovttx.html