实现即时通信有多种方式,下面讲的是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. Java基础之类Class使用

    大家都知道Java是一门面向对象编程语言,在Java世界里,万事万物皆对象,那个Java中怎么表示对象呢?Class 我们知道Java中的对象都是Object类的子类,那么今天我们就一起来研究一下Ja ...

  2. Android之Socket通信、List加载更多、Spinner下拉列表

    Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务 ...

  3. 创建第一个 local network(II)- 每天5分钟玩转 OpenStack(81)

    上一节通过 Web GUI 创建了 “first_local_net”,本节我们需要搞清楚底层网络结构有了哪些变化? 点击 “first_local_net” 链接,显示 network 的 subn ...

  4. 记一次ASP.NET MVC性能优化(实际项目中)

    前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...

  5. Vim 快速上手

    1.vi的基本概念 基本上vi可以分为三种状态,分别是 命令模式(command mode) 插入模式(Insert mode) 底行模式(last line mode) 1) 命令行模式comman ...

  6. JQuery EasyUI datagrid 复杂表头处理

    下面是我项目中和网上收集的EasyUI的表头处理的,合适的拿去用吧. 例子1: $('#day_health').datagrid({                 url: "sqb_b ...

  7. K & DN 的前世今生(微软开源命名变革)

    一个非常有意思的 Issue:Can we rename K? 在这个 Issue 中,有大量的社区开发者讨论了微软开源命名问题,主要是 K 如何进行替换掉?看来大伙都对微软项目命名有歧义,首先,再次 ...

  8. geotrellis使用(十六)使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题

    Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 问题探索 采样说明 实现方案 总结 一.前言     ...

  9. 【数据挖掘】朴素贝叶斯算法计算ROC曲线的面积

    题记:          近来关于数据挖掘学习过程中,学习到朴素贝叶斯运算ROC曲线.也是本节实验课题,roc曲线的计算原理以及如果统计TP.FP.TN.FN.TPR.FPR.ROC面积等等.往往运用 ...

  10. Oracle Tuning 基础概述01 - Oracle 常见等待事件

    对Oracle数据库整体性能的优化,首先要关注的是在有性能问题时数据库排名前几位等待事件是哪些.Oracle等待事件众多,随着版本的升级,数量还在不断增加,可以通过v$event_name查到当前数据 ...