实现即时通信有多种方式,下面讲的是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. Matlab 循环读入和输出

    这两天要给导师做实验,因此要写Matlab程序,在做程序的时候,涉及到了循环读入和输出,查找相关资料 代码如下 : Image=['F:\\SYTP\\',num2str(i),'.jpg']; Te ...

  2. C标准I/O库函数与Unbuffered I/O函数

    一.C标准I/O库函数.Unbuffered I/O函数 1. C标准I/O库函数是如何用系统调用的 fopen(3) 调用open(2)打开制定的文件,返回一个文件描述符(一个int类型的编号),分 ...

  3. Android图片缓存之初识Glide

    前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...

  4. 倾情大奉送--Spark入门实战系列

    这一两年Spark技术很火,自己也凑热闹,反复的试验.研究,有痛苦万分也有欣喜若狂,抽空把这些整理成文章共享给大家.这个系列基本上围绕了Spark生态圈进行介绍,从Spark的简介.编译.部署,再到编 ...

  5. c++中的重名问题

    看C++视频教程-范磊主讲(2.91G)视频学习笔记整理. 1.c++为什么要引入名字空间(namespace)? c++引入名字空间这个概念,是为了避免重名问题,比如说避免重复的函数名或者变量名引起 ...

  6. PHP中curl_init函数用法

    使用PHP的cURL库可以简单和有效地去抓网页.你只需要运行一个脚本,然后分析一下你所抓取的网 页,然后就可以以程序的方式得到你想要的数据了.无论是你想从从一个链接上取部分数据,或是取一个XML文件并 ...

  7. HTML特殊符号汇总

    较常用的飘黄处理了 ´ ´ © © > > µ µ ® ® & & ° ° ¡ ¡   » » ¦ ¦ ÷ ÷ ¿ ¿ ¬ ¬ § § • • ½ ½ « « ¶ ¶ ¨ ...

  8. STM32CubeMX安装指南

    1.STM32CubeMX软件下载 地址:http://pan.baidu.com/s/1bn8sXOV 密码:6u3p 2.安装     1)安装Java SDK     2)安装SetupSTM3 ...

  9. 多个提高C#编程能力的建议

    1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之间,优先使用 as 操作符 4 ...

  10. Redis两种持久化方式(RDB&AOF)

    爬虫和转载请注明原文地址;博客园蜗牛:http://www.cnblogs.com/tdws/p/5754706.html Redis所需内存 超过可用内存怎么办 Redis修改数据多线程并发—Red ...