前言
openfire是一个聊天服务端,好比qq服务端.本质是个socker server.
openfire通讯协议是 xmpp ,什么是xmpp参考百科 https://baike.baidu.com/item/XMPP/3430617?fr=aladdin
openfire项目三部分
1.服务端 ---> 2.桌面版客户端spark ---> 3.smack(api客户端)
1.服务端结构
a.plugins(插件):
1.官方提供的插件
2.自己开发插件
功能概述:比如注册用户。
b.web版的管理端
2.桌面版客户端spark
a.类似QQ客户端,还没用
3.smack(api客户端)
a.api库,程序员都懂.
安装篇
下载 openfire-4.1.5-1.noarch.rpm,jdk环境1.8
#安装
rpm -ivh openfire-4.1.5-1.noarch.rpm
#启动
systemctl restart openfire
#浏览器打开
http://ip:9090
官方rest api插件使用
#安装rest api
REST API插件可以后台添加用户等等,详细查看文档
python调用例子:
#coding=utf-8 import requests import json tou1 = {"Authorization": "pymxG12RQQDj2vFY","Accept": "application/json"} tou2 = {"Authorization": "pymxG12RQQDj2vFY","Content-Type": "application/json"} tou3 = {"Authorization": "pymxG12RQQDj2vFY","Content-Type": "application/xml"} def serach_user(user): url = "http://192.168.0.110:9090/plugins/restapi/v1/users?search={user}".format(user=user) r1 = requests.get(url,headers=tou1) print r1.text def create_user(user): url = "http://192.168.0.110:9090/plugins/restapi/v1/users" r1 = requests.post(url, headers=tou2,data=user) print r1.text print r1.status_code def send_broadcast_message(message): url = "http://192.168.0.110:9090/plugins/restapi/v1/messages/users" r1 = requests.post(url, headers=tou3,data=message) print r1.status_code if __name__ == '__main__': # c_user1 ={"username": "new1", "password": "p4ssword"} # c_user1 = json.dumps(c_user1) # create_user(c_user1) message = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?><message><body>Your message hello</body></message>""" send_broadcast_message(message)
smack(api客户端)使用
创建个mavn工程.
pom.xml添加
<dependency>
<groupId>org.igniterealtime.smack</groupId> <artifactId>smack-java7</artifactId> <version>4.1.1</version