电竞比分网-中国电竞赛事及体育赛事平台

分享

C#訪問(wèn)openfire服務(wù)器之一:服務(wù)端的安裝、客戶端的簡(jiǎn)介

 WindySky 2016-03-14

 最近在移動(dòng)端開(kāi)發(fā)中遇到推送消息、即時(shí)通信的需求,以前沒(méi)有注意過(guò)這方面的知識(shí),特別花費(fèi)一段時(shí)間搗鼓了一下,初步實(shí)現(xiàn)了c#訪問(wèn)openfire服務(wù)器,實(shí)現(xiàn)即時(shí)通信。特此記錄一下,方便與我一般的初涉者參考。


首先,即時(shí)通信服務(wù)分為服務(wù)端與客戶端兩塊。

一、服務(wù)端

服務(wù)端使用openfire直接進(jìn)行搭建,基本上是一步步向下操作即可。

我使用的是exe版本的安裝程序,首先正常安裝,然后啟動(dòng)服務(wù)器端,進(jìn)入其web的管理臺(tái),進(jìn)行一些初始化的設(shè)置。中間主要需要設(shè)置數(shù)據(jù)庫(kù)訪問(wèn),注意官方自帶的JDBC類型并不完整,比如我使用的是oracle,則需要自己下載相應(yīng)數(shù)據(jù)庫(kù)版本的JDBC,將包放到openfire安裝目錄下的lib文件夾中。

測(cè)試:服務(wù)端設(shè)置成功以后,可以安裝直接的Spark客戶端進(jìn)行測(cè)試(常規(guī)的即時(shí)通信工具)。

openfire和Spark下載地址:http://www./downloads/index.jsp


二、客戶端

因?yàn)閛penfire是JAVA項(xiàng)目,我們這些C#選手想要使用須通過(guò)agsXMPP進(jìn)行訪問(wèn)。

在使用agsXMPP訪問(wèn)openfire服務(wù)器時(shí)需要注意以下問(wèn)題。

1.    認(rèn)證協(xié)議問(wèn)題

agsXMPP 在認(rèn)證的時(shí)候,默認(rèn)使用 DIGEST-MD5 ,但是在 openfire 下無(wú)法認(rèn)證通過(guò),改成 PLAIN 即可,也就是在 miniclient 的 frmMain.cs 的 XmppCon_OnSaslStart 方法中,將如下兩行的注釋去掉:

args.Auto = false;

args.Mechanism = agsXMPP.protocol.sasl.Mechanism.GetMechanismName(agsXMPP.protocol.sasl.MechanismType.PLAIN);

2.    Iq 節(jié)

Openfire 不支持 Iq 節(jié)帶 to 的屬性,所以在 agsXMPP 中發(fā)送 Iq 節(jié)的時(shí)候先 RemoveAttribute("to") 一下就行了,具體的就是找到 agsXMPP 源代碼目錄下的 sasl/saslHandler.cs 文件中,所有調(diào)用 SendIq 方法的前面,都加入如下語(yǔ)句:

bIq.RemoveAttribute("to");


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多