实现即时通信有多种方式,下面讲的是Mac下使用XMPP来实现。

XML Messages Presence Protocol 可扩展消息处理协议 简单讲就是基于XML语言的点对点即时通信协议 
原理:至少两个客户端和一个服务器

搭建XMPP环境

需要几个辅助工具

  1. XAMPP
  2. OpenFire
  3. spark
  • 我们首先是搭建服务器环境,要想安装Apache服务器是不容易的,如果你还想添加 MySQL、PHP 和 Perl,那就更难了。XAMPP(Apache+MySQL+PHP+PERL)是很好的辅助工具,TA是一个功能强大的建 XAMPP 软件站集成软件包。这个软件包原来的名字是 LAMPP,它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持多语言。XAMPP 是一个易于安装且包含 MySQL、PHP 和 Perl 的 Apache 发行版。XAMPP 的确非常容易安装和使用:只需下载、解压、启动即可。
  1. 准备XAMPP的安装包
  2. 安装(简单的一直NEXT操作)
  3. 点开Manage Server 点击 start all ,这个意思就是开启所有服务。注意:如果你的MAC自带了一个Apache就会会导致启动失败,就需要打开终端输入 sudo apachectl stop 命令,停止自带的服务器运行。
  • OpenFire是开源的基于XMPP协议的服务器,下面是OpenFire的安装和配置指南 登录127.0.0.1:9090
          1、准备OpenFire安装包
          2、双击进行安装(注意:在系统偏好设置-安全与隐私-通用里面设置 允许mac安装任何来源)
          3、安装完成之后进入系统偏好设置,会发现多了一个OpenFire图标
          4、点击图标进入保证Status 是 Running 也就是处于运行状态
          5、启动之后 可以点击Open Admin Console进入 或者 通过127.0.0.1:9090访问(注意:为了避免错误要使用mac内部的Safari浏览) OpenFire服务器的web配置页面  进行配置
   6、首先选择语言 中文
   7、服务器设置  域名:本地主机名称 系统偏好设置 - 共享 中可以查看(一般默认继续下一步)
   8、数据库设置  使用标准数据库
   9、数据库设置 - 标准连接
  • 使用MySQL数据库(存储聊天记录)
  • 这里还要修改数据库URL的两个值[host name] = 127.0.0.1和 [database name]
  • 后者需要先使用phpMyAdmin创建一个新的数据库,通过127.0.0.1登录XAMPP页面,点击 phpMyAdmin - New 创建数据库成功之后导入表openfire_mysql.sql
  • 此时要去OpenFire文件中获取需要的这个文件,打开Finder前往文件夹(command + shift + g)输入/usr进入usr-local-openfire
  • 这个时候你会发现你因为没有权限而无法打开文件,解决办法就是选中文件右键-显示简介-解锁-everyone修改为读与写-上锁
  • 此时可以打开openfire-resource-database中找到我们需要的openfire_mysql.sql你可以选择放到桌面方便在phpMyAdmin中导入
  • 选中新建的数据库-导入-选择文件-导入成功 [database name] = 新建的数据库名称
  • 用户名 = root
  • 密码省略
   10、特性设置  初始设置
   11、设置新密码 (注意:为了避免后面忘记密码可以跳过这一步,要是设置密码出错或者不设置那么密码就和账户名是一样的admin)
   12、安装完成,登录到管理控制台
 

openfire启动失败解决办法

当你发现你的电脑上的openfire无论你是重新安装还是重启都无法启动的情况下你可以按照我下面写的那些终端指令来启动你的openfire不用再去重新做你的系统了.
一般你发现你的openfire打开出现这样的窗口后你就可以想到你的openfire出问题了,极个别的时候你可以通过重新安装来解决.

如果大家的问题重新安装后没有解决那就试下我下面的方法.

先打开自己电脑上的终端然后输入以下指令

//   获取权限
sudo chmod -R 777 /usr/local/openfire/bin

sudo su
sh-3.2# cd /usr/local/openfire/bin
sh-3.2# export JAVA_HOME='/usr/libexec/java_home'
sh-3.2# echo $JAVA_HOME
/usr/libexec/java_home
sh-3.2# export JAVA_HOME=`/usr/libexec/java_home`     //记住这里不是单引号而是英文下数字1左边的按键.

sh-3.2# echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
sh-3.2# cd /usr/local/openfire/bin
sh-3.2# ./openfire.sh
Openfire 3.10.2 [Aug 13, 2015 9:50:05 AM]
Admin console listening at http://niufangludemacbook-pro.local:9090
一般你输入完成这些指令后你再打开你的openfire就会好了

简单提一下 :MAC下彻底卸载OpenFire

  1. 在phpMyAdmin中点击 主页 - 数据库 勾选你创建的数据库直接删除
  2. 在系统偏好设置中点击进入修改Status 停止运行状态
  3. 打开终端输入以下三条命令:

sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
                              sudo rm -rf /usr/local/openfire
                              sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist

    说明:第一条会让你输入管理员密码,尽管你输入的时候,终端不会显示,不必担心,正确输入后按回车,它就执行了.
三条命令以后,openfire就彻底消失了.

 

MAC下的XMPP环境搭建的更多相关文章

  1. Mac下R语言环境搭建

    Mac下R语言环境搭建 博主在数据分析的时候一直用的python(MATLAB太重了),最近跟其他搞学术的人合作,需要用一下R语言,所以也打算顺便学习一下R. R语言简介 R语言是用于统计分析,图形表 ...

  2. OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建

    # OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-hom ...

  3. mac下selenium+python环境搭建

    selenium2+python的环境搭建主要需要python和selenium 1.python mac下自带了python,可以查看版本.当然可以选择安装其它版本的python. 2.seleni ...

  4. Mac下git的环境搭建和基本使用

    前言本文将介绍git的基本概念.环境搭建.日常使用,主要针对刚接触git,或接触不久,或好久没用忘记的同学们,当然是基于mac环境的,window系统也是大同小异!本文将从以下几个模块介绍,希望能帮助 ...

  5. mac下java 开发环境搭建

    mac配置java开发环境: jdk1.7 +sdk1.7+maven +tomcat   1.先安装jdk ,才能安装sdk . 2 mac中jdk1.7的默认位置:/Library/Java/Ja ...

  6. mac下Android开发环境搭建

    之前一段时间在学习ios的开发,近一段时间想着也接触下Android开发,以来加深对移动端开发的理解.这里根据自己配置Android开发环境的过程,比较详细的来总结下自己的安装过程,希望对一些正准备配 ...

  7. Mac下JAVA开发环境搭建

    最近开始学习JAVA, 首先配置下环境! 1.Mac自带的jdk版本老了,需要到oracle官网去下载新的jdk,具体下载那个版本看个人需求,然后安装.   安装完成之后打开Terminal, 执行命 ...

  8. MAC 下 STF 的环境搭建和运行

    STF --WEB 端批量移动设备管理控制工具 安装各种包 (首先安装Macport,因为后面需要用到port:http://www.ccvita.com/434.html) linux的基本包安装, ...

  9. Mac下Qt的环境搭建

    1.分别下载并安装XCode和Command Line Tools(必须安装),安装完毕后,Clang就有了. https://developer.apple.com/downloads/ 2.下载Q ...

随机推荐

  1. C#中的readonly与const的比较

    C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景.工作原理 readonly为运行时常量,程序运行时进行赋 ...

  2. EntityFramework之一对一关系(二)

    前言 关于表关系园中文章也是数不胜收,但是个人觉得最难攻克的是一对一,对其配置并非无道理可循,只要掌握了原理方可,且听我娓娓道来! 共享主键关系 概念:就是两个表共享相同的主键值,也就是说一表的主键值 ...

  3. SubSonic3.0.0.4.2源码包与调用Dll

    ================================================================ 名    称:SubSonic插件版    本:3.0.0.4.2最后 ...

  4. C# 对象锁

    现在有一种场景,服务端将一个任务派发给10个客户端执行,所有客户端执行完后,整个任务才算执行完. 每个客户端执行完后,通过http发送一个完成的消息给服务端,服务端发送邮件通知给用户. 当10个客户端 ...

  5. Oracle函数之LISTAGG

    最近在学习的过程中,发现一个挺有意思的函数,它可实现对列值的拼接.下面我们来看看其具体用法. 用法: 对其作用,官方文档的解释如下: For a specified measure, LISTAGG  ...

  6. EXP/IMP迁移案例,IMP遭遇导入表的表空间归属问题

    生产环境: 源数据库:Windows Server + Oracle 11.2.0.1 目标数据库:SunOS + Oracle 11.2.0.3 1.确认迁移需求:源数据库cssf 用户所有表和数据 ...

  7. JavaWeb路径问题打包总结--小心出门右转404

    话说,培训和自学就不是一个回事,两周讲完java基础,两天讲完jsp,两节课讲完servlet,还真不是一般人能受得了的,这两天学习jsp和servlet频繁被路径问题困扰,倒不是出错,只是各种act ...

  8. HTML基本结构

    HTML简介 HyperText Markup Language:超文本标记语言 HyperText:超文本(文本 + 图片 + 视频 + 音频 + 链接) Markup Language:标记语言 ...

  9. HTML基础知识汇总

    前言 一直想总结一下,苦于没有时间,正好看到了一个总结了不错的博客,我就在他的基础上进行一下测试并总结,原博地址:http://www.cnblogs.com/wanghzh/p/5805587.ht ...

  10. NSPredicate 的使用

    NSPredicate是什么? NSPredicate 是预测的意思 但是我们常翻译成谓词 它可以干什么? 使用NSPredicate可以定义模糊查询条件 根据一定的条件 我们就可以从一个数组中快速找 ...