zoukankan      html  css  js  c++  java
  • java应用之openfire入门篇

    前言

    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