當前位置:首頁 » 雲伺服器 » iosxmpp伺服器搭建

iosxmpp伺服器搭建

發布時間: 2023-04-03 02:26:08

❶ 如何自己搭建一個xmpp,實現推送消息

Android推送方案分析(MQTT/XMPP/GCM)
蝸牛TT 發布於 4個月前,共有 11 條評論
本文主旨在於,對目前Android平台上最主流的幾種消息推送方案進行分析和對比,比較客觀地反映出這些推送方案的優缺點,幫助大家選擇最合適的實施方案。
方案1、使用GCM服務(Google Cloud Messaging)
簡介:Google推出的雲消息服務,即第二代的G2DM。
優點:Google提供的服務、原生、簡單,無需實現和部署服務端。
缺點:Android版本限制(必須大於2.2版本),該服務在國內不夠穩定、需要用戶綁定Google帳號,受限於Google。

方案2、使用XMPP協議(Openfire + Spark + Smack)
簡介:基於XML協議的通訊協議,前身是Jabber,目前已由IETF國際標准化組織完成了標准化工作。
優點:協議成熟、強大、可擴展性強、目前主要應用於許多聊天系統中,且已有開源的java版的開發實例androidpn。
缺點:協議較復雜、冗餘(基於XML)、費流量、費電,部署硬體成本高。

方案3、使用MQTT協議(更多信息見:http://mqtt.org/)
簡介:輕量級的、基於代理的「發布/訂閱」模式的消息傳輸協議。
優點:協議簡潔、小巧、可擴展性強、省流量、省電,目前已經應用到企業領域(參考:http://mqtt.org/software),且已有C++版的服務端組件rsmb。
缺點:不夠成熟、實現較復雜、服務端組件rsmb不開源,部署硬體成本較高。

方案4、使用HTTP輪循方式
簡介:定時向HTTP服務端介面(Web Service API)獲取最新消息。
優點:實現簡單、可控性強,部署硬體成本低。
缺點:實時性差。

對各個方案的優缺點的研究和對比,推薦使用MQTT協議的方案進行實現,主要原因是:MQTT最快速,也最省流量(固定頭長度僅為2位元組),且極易擴展,適合二次開發。接下來,我們就來分析使用MQTT方案進行Android消息的原理和方法,並架設自己的推送服務。

如果還不明白的 話,要看分析的話,給你個網址:http://m.oschina.net/blog/82059
自己看看。

❷ 關於iOS xmpp如何和伺服器連接 怎樣工作。求具體demo 謝謝

求同,如果有文字資料就更好了

❸ 怎麼安裝Movable Type 要求步驟准確詳細,但意思要簡單

1. 下載文件從2001年至今,MT已發展到4.0了。在其官方網站上可以下載到最新的4.0個人版。 本文將採用XAMPP用於搭建本地伺服器,XAMPP也是一個非常有名的建站軟體包,安裝及其簡單,安裝後將提供Apache+php+Mysql環境。在其官方網站下載最新的1.6.3a windows版,以及Perl 5.8.8插件,先安裝XAMPP,然後再安裝Perl插件。2. 解壓下載的MT-4.0-en.zip,將得到的mt-4.0-en復制到:xampp安裝目錄\cgi-bin下面。如我是將XAMPP安裝在D盤根目錄,就是D:\xmpp\htdocs,默認是安裝在C盤根目錄。然後將裡面的mt-static文件夾剪切出來放置到:xampp\htdocs下面。3. 進入cgi-bin\MT-4.0-en目錄,用文本編輯器如editplus等,打開任意一個cgi文件,將第一行的代碼: #!/usr/bin/perl -w改為:#!D:\xampp\perl\bin\perl.exe 其中D:\xampp是我的xampp的安裝目錄。保存退出。然後務必將該目錄下所有*.cgi文件(共13個)的第1行代碼全部改過。目錄下的mt-config.cgi-original文件暫且不用動。4.打開xampp的控制面板,啟動apache和mysql服務,一定要確認apache和mysql服務已啟動,如圖1。否則將無法進行後續步驟。圖1 啟動Apache和Mysql服務 在瀏覽器地址欄中中輸入:http://localhost/cgi-bin/MT-4.0-en/mt-check.cgi,打開mt的測試頁面。如圖2。 圖2 MT測試頁面-1 因為我們還沒生成mt-config.cgi,所以將會提示「Movable Type configuration file was not found」(沒找到Movable type的配置文件),這個文件將會在後續步驟中自動生成。將測試頁面往下來,查看下伺服器是否具備了所有MT運行必需的模塊(Required mole和Data storage mole)。如圖3。正確安裝XAMPP將會提供所有MT必需模塊。如CGI,塵核卜mysql。圖3 MT測試派穗頁面-2 如果是手動編輯好mt-config.cgi的話,將會在網頁最後顯示「Movable Type System Check Successful」的提示。如圖4:圖4 MT測試頁面-3 5. 輸入:http://localhost/cgi-bin/MT-4.0-en/mt-wizard.cgi,開始配置MT。將會出現如圖5 Welcome界面,要求輸入mt-static所作目錄。我們剛才將mt-static文件夾放在htdocs下面,所以只需簡單輸入/mt-static即可。 圖5 輸入mt-static路徑 點擊Begin開始配置MT。MT首先會檢查所需模塊是否都有。一切順利將有圖6提示「All required Perl moles were found」,所需Perl模塊已找到。圖6 MT模塊檢查結果 點擊Continue開始進行資料庫配置。如圖7。 圖7 開始配置資料庫 由於我們還未建立資料庫,所以暫且撇開MT,先用XAMPP自帶的phpmyadmin來建立資料庫。如果您有已現成資料庫,請直接跳到步驟7。 6. 建立資料庫在地址欄中輸入:http://localhost/phpmyadmin/ ,啟動phpMyadmin連上mysql。在Create new database裡面輸入擬新建的資料庫名稱,如mt。Mysql connection collation默認為utf8_unicode_ci。如圖8。然 圖8 建立資料庫 後點擊Create建立名為mt的資料庫,如圖9。圖9 mt數氏睜據庫已建立 7. 配置資料庫回到MT配置頁面,在圖7的下拉菜單中選中Mysql database,依次輸入伺服器地址,默認localhost,資料庫名稱,如mt,用戶名和密碼。xampp的默認資料庫用戶名是:root,密碼為空。如果您有已建好資料庫,請在此輸入資料庫名稱,用戶名和密碼。 圖10 輸入資料庫信息 點擊Test Connection測試資料庫連接。連接正確的話,將會有圖11界面出來提示」Your database configuration is complete」,您的資料庫已配置完畢。圖11 資料庫配置完畢 8. 配置郵件以及生成mt-config.cgi文件接著開始配置郵件。xammp默認不支持sendmail,(在MT的測試頁面中也可以看出,在可選模塊裡面),無需進行郵件配置不影響MT的安裝。所以郵件配置不必選擇,直接點擊Continue略過。如圖12。 圖12 配置郵件 圖13是要求配置臨時目錄,默認是C:\Windows\Temp,請按默認設置,或自行新建一個文件夾,然後輸入該文件夾路徑。圖13 配置臨時目錄 點擊Contine,MT會檢查是否存在該目錄,如果沒有目錄,會有出錯提示。一切正常,則會將以上配置寫入到mt-config.cgi文件中,並將該文件放置到MT-4.0-en目錄(MT的安裝目錄)下。如圖14。圖14 生成mt-config.cgi 至此,已完成MT的運行配置了,下面將開始配置博客。 9. 博客配置點擊圖14中的Continue將開始配置博客,如用戶名,密碼,博客名稱,地址等。 在圖15中輸入用戶名,顯示名稱,email地址,語言(無中文),密碼和找回密碼的提示語之類的用戶信息。圖15 輸入用戶信息 圖16中輸入博客名稱,地址,發布地址和時區。默認的博客地址是http://localhost/BLOG-NAME,我將BLOG-NAME改為mt-demo,請在xampp\htdocs目錄下手動建立mt-demo文件夾。您亦可以將BLOG-NAME改為自己喜歡的名字,但切記要在htdocs手動建立同名文件夾。圖16 設置博客信息 點擊Finish install後,MT將開始更新資料庫。最終出現Sign in to Movable Type。如圖17。 圖17 生成資料庫 恭喜,已成功安裝MT4.0,點擊Sign in to Movable Type按鈕將會打開MT控制面板。如圖18。控制面板中的標簽頁比較少,只有My First Blog(博客名)和Write Entry(寫文章),不像WP有一整排。點擊每個下拉箭頭會出現子菜單。圖18 MT後台界面 點擊 Write your first post來發布第一篇文章,如圖19。輸入標題,內容,標簽,目錄等,點擊Save就可以發布了。圖19 新建文章 點擊菜單欄最後一個類似頁面的小按鈕查看博客。默認的主題是紅色的。如圖20。 圖20 默認主題 MT4.0自帶了10個模板,都是3欄的頁面布局。可以在菜單欄中,design-style進入主題管理頁面。如圖21。圖21 更改主題-1 點擊左邊的Default Styles,然後在中間選中自己中意的模板。點擊Apply Design按鈕即可替換模板。

❹ ios xmpp demo 怎麼跑起來

服務端隨便找一個就行,比如Openfire。。 然後找個支消散拿持XMPP聊天的App玩一下,向Spark這樣的。。連服務掘野端測試一下。。 然後拿搭那個XMPPFramework自身就有個很簡單的Demo。。看一下就好了~

❺ 要做一個類似於微信或者QQ的Android、ios的聊天應用,請問伺服器端用什麼技術或開源框架比較好

即時聊天通用的協議是 XMPP,基於這個協議有一套java開源的服務端 openfire,可以快速的搭建一套即時聊天服務端。
但是現在有不少雲即時通訊服務。例如
容聯雲通訊、雲之訊、環信、融雲
這些雲服務提供了api,我們基於他的api開發很容易實現自己的即時聊天軟體。服務端,伺服器都不用我們自己管了,極大的節省了成本和開發周期。而且這些雲服務基礎服務都是免費的。

建議用第三方的雲服務實現。

❻ XMPP協議(IM)

XMPP是一種基於標准通用標記語言的子集XML的協議,它繼承了在XML環境中靈活的發展性。因此,基於XMPP的應用具有超強的可擴展性。經過擴展以後的XMPP可以通過發送擴展的信息來處理用戶的需求,以及在XMPP的頂端建立如內容發布系統和基於地址的服務等應用程序。而且,XMPP包含了針對伺服器端的軟體協議,使之能與另一個進行通話,這使得開發者更容易建立客戶應用程序或給一個配好系統添加功能。

全稱:可擴野或扮展通訊和表示協議

簡介:可擴展通訊和表示協議 (XMPP) 可用於服務類實時通訊、表示和需求響應服務中的XML數據元流式傳輸。XMPP以Jabber協議為基礎,而Jabber是即時通訊中常用的開放式協議。XMPP is the IETF's formalization of the base XML streaming protocols for instant messaging and presence developed within the Jabber open-source community in 1999

XMPP(可擴展消息處理現場協議)是基於可擴展標記語言(XML)的協議,它用於即時消息(IM)以及在線現場探測。它在促進伺服器之間的准即時操作。這個協議可能最終允許網際網路用戶向網際網路上的其他任何人發送即時消息,即使其操頌灶作系統和瀏覽器不同。

XMPP的前身是Jabber,一個開源形式組織產生的網路即時通信協議。XMPP目前被IETF國際標准組織完成了標准化工作。標准化的核心結果分為兩部分;

核心的XML流傳輸協議

基於XMLFreeEIM流傳輸的即時通訊擴展應用

XMPP的核心XML流傳輸協議的定義使得XMPP能夠在一個比以往網路通信協議更規范的平台上。藉助於XML易於解析和閱讀的特性,使得XMPP的協議能夠非常漂亮。

XMPP的即時通訊擴展應用部分是根據IETF在這之前對即時通訊的一個抽象定義的,與其他業已得到廣泛使用的即時通訊協議,諸如AIM,QQ等有功能完整,完善等先進性。

XMPP的擴展協議Jingle使得其支持語音和視頻。

XMPP的官方文檔是RFC 3920.

XMPP中定義了三個角色,客戶端,伺服器,網關。通信能夠在這三者的任意兩個之間雙向發生。伺服器同時承擔了客戶端信息記錄,連接管理和信息的路由功能。網關承擔著與異構即時通信系統的互聯互通,異構系統可以包括SMS(簡訊),MSN,ICQ等。基本的網路形式是單客戶端通過TCP/IP連接到單伺服器,然後在之上傳輸XML。

傳輸的是與即時通訊相關的指令。在以前這些命令要麼用2進制的形式發送(比如QQ),要麼用純文本指令加空格加參數加換行符的方式發送(比如MSN)。而XMPP傳輸的即時通訊指令的邏輯與以往相仿,只是協議的形式變成了XML格式的純文本。

以文檔的觀點來看,客戶端或伺服器發送的所有XML文本連綴在一起,從<stream>到</stream>構成了一個完整的XML文檔。其中的stream標簽就是所謂的XML Stream。在<stream>與</stream>中間的那些<message>...</message>這樣的XML元素就是所謂的XML Stanza(XML節)。XMPP核心協議通信的基本模式就是先建立一個stream,然後協商一堆安全之類的東西,中間通信過程就是客戶端發送XML Stanza,一個接一個的。伺服器根據客戶端發送的信息以及程序的邏輯,發送XML Stanza給客戶端。但是這個過程並不是一問一答的,任何時候都有可能從團凱一方發信給另外一方。通信的最後階段是</stream>關閉流,關閉TCP/IP連接。

目前不少IM應用系統如:Google公司的Google Talk以及Jive Messenger等開源應用,都是遵循XMPP協議集而設計實現的,這些應用具有很好的互通性。

❼ 什麼是xmpp協議,它的工作原理是什麼

xmpp是一種基於xml的協議,它繼承了在xml環境中靈活的發展性。因此,基於xmpp的應用具有超強的可擴展性。經過陸差擴展以後的XMPP可以通過發送擴展的信息來處理用戶的需求,以及在XMPP的頂端建立如內容發布系猜李統和基於地址的服務等應用程 序。而且,XMPP包含了針對伺服器端的軟體協議,使之能與另一個進行通話,這使得開發者更容易建立客戶應用程序或給一個配好系統添加功能。

在IETF 中,把IM協議劃分為四種協議,即即時信穗悉遲息和出席協議(Instant Messaging and Presence Protocol, IMPP)、出席和即時信息協議(Presence and Instant Messaging Protocol, PRIM)、針對即時信息和出席擴展的會話發起協議(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions, SIMPLE),以及可擴展的消息出席協議(XMPP)。

❽ XMPP 協議工作流程詳解

XMPP 核心協議 xmpp.org/rfcs/rfc392…

XMPP 要點.

第一步: 打開 stream

Client: 客戶端發送打開 stream 的片段到伺服器, 請求一個新的 session.

這里 「example.com」 是客戶端試圖連接的伺服器的域名.

Server: Server 返回 XML stream, 以stream:freatures 開頭, 包含要求 TLS 或者 SASL 協商談判之一, 或者2個都要求.

第二步: 加密和認證.

2.1 如果伺服器需要 TLS 交涉.

Client: 客戶端發送 STARTTLS 到伺服器.

Server: 伺服器返回消息顯示 TLS 已被允許:

或者 TLS失敗了:

在失敗的情況下, 伺服器會關閉 TCP 連接.

Client: 如果 TLS 已被伺服器正確處理, 客戶端發送請求一個新的 session:

Server: 伺服器響應一個 XML stream, 指示是否需要 SASL 交涉.

2.2 SASL 交涉

Client 客戶端需要選擇一個伺服器上有效的認證方式來攜帶SASL交涉數據, 上面的情況, 「DIGEST-MD5「, 「PLAIN」 和螞簡 「EXTERNAL」 是一些可選項.

「PLAIN」 認證模式是三者之中最簡單的了. 它是這樣工作的:

Client: 客戶端按照自己選擇的認證模式發送一個將用戶名和密碼以base64編碼的 stream. 用戶名和密碼按這種格式組織:

例如我想以用戶名為「 [email protected] 」登錄, 密碼是「mirror」. 那麼, 在進行base64編碼之前, 用戶名和密碼按照上面的格式組織為一個新的字元串,「mbedmirror」, 再進行base64編碼, 得到字元串「AG1iZWQAbWlycm9y」.

然後, 客戶端發送下列扮春 stream 到伺服器.

Server: 如果伺服器接受了認證信息, 伺服器會發回 帶 「success」 標簽的 stream.

或者:

Server: 如果密碼和用戶名不匹配, 或者上面的base64編碼有錯誤, 伺服器發回錯誤信息的 stream.

「DIGEST-MD5」 認證模式的具體方法可以在這里找到: www.ietf.org/rfc/rfc2831… .

第三步: 資源綁定(可選)

Client: 客戶端要求伺服器綁定一個資源(可以理解為客戶端的類型, 比如電腦, 手機, Web應用等):

或者

Client: 客戶端自己綁定一個資源:

Server: 伺服器發回另外一個片段, 如果「type」 標簽的內容是「result」, 說明綁定是成功的, 否則說明綁定失敗.

第四步: 請求一個新的session

在 SASL 交涉完成之後或者可選資源綁定之後, 客戶端必須建立一個 session 來開始即時消息發送和接收.

Client: 客戶端向伺服器發送請求:

Server: 伺服器發回一個 片段表明 session 是否成功創建.

創建成功的消息類似於:

如果伺服器未能創建 session, 伺服器將會回復一個如下消息或者其他類型的錯誤消息.

第五步: 客戶端和伺服器交換 XMPP 片段

如果以上步驟均成功完成, 那麼客戶端就可以發送 XMPP 片段到伺服器和接收 XML stream了.

客戶端可以發送 片段來向伺服器請求 roster 或者其他信息. 並可以使用 片段來改變客戶端的 presence 狀態(比如在線, 離開等)

即時消息和其他的負載可以通過發送 片段來完成.

第六步: 關閉 stream

最後, 如果客戶端想要結束聊天和關閉 XMPP session, 客戶端需要發送一個關閉廳物耐 stream的片段到伺服器.

然後, 伺服器將會改變客戶端的 presence 狀態為 「Offline」 , 並且關閉 和客戶端的 TCP 連接.

❾ 如何用mac os x server搭建網站

Apache 就內置在 Mac OS X Server 中,它是互聯網上使用范圍最廣的 HTTP 伺服器。 Apache 已預先配置好默認設定,因此,部署起來如同啟動 Web 服務一樣簡單。任何存儲在伺服器默認網站文件夾中的 HTML 內容,都將自動通過互聯網呈現。有豐富經驗的網站管理員可以在 Mac OS X Server 的 Server Admin 應用程序中使用 Apache 2.2。Mac OS X Server 為經驗豐富的網站管理員在 Server Admin 應用程序中使用 Apache 2.2 提供支持。

如果你還是不會,那你給我發消息,我有 PDF 版的詳細攻略,從 MySQL 的安裝到最後的完成。

並且我還有 Apple 官方提供的虛擬機配置等精彩視頻,我看了一下,不到 1 分鍾就配置出了一個強大的網站,並也還支持子域名綁定。

❿ 手機系統推送是什麼意思,不要用專業術語解釋,請舉個例說一下,謝謝。

推送系統最早其實是黑莓的專利,後來ios非常聰明的學去了,而且學的很好。在推送之前很多智能系統只能通過輪詢的方式不斷定期向伺服器詢問是否有新信息,往往費電和費流量。
ios建立了一個統一的伺服器,APNS(Apple Push Notification Service),簡單的說,我們卜兆喚在手機上接收到的所有推送信息都來源於這個伺服器,每一台ios設備都有一個獨立的識別碼相當於。那麼當你用這個登錄了某個軟體(比如米聊)後,就連接到了米聊的伺服器上,在推送體系中這個目標伺服器被稱作Provider。接著你看完消息,退出米聊後,進程結束,但是此時你這個的登錄狀態並沒有在Provider里注銷,而是保留了。因此如果有人給你的米聊發送了信息,就會觸發Provider的行為,但是由於你關閉了米聊,所以它無法直接向你的手機發送消息,於是它轉而向APNS發送信息,順便帶著你的。然後萬能的APNS就順著找到你,然後把消息塞到你的手機里。只要你ios設備的推送不關閉,流量不關閉,那麼你的設備就會一直和APNS保持連接,從而達到24小時接受推送信息的目的。有人應該已經明白了這樣做的好處,因為你只和一個伺服器產生連接,省電省流量。另外由於APNS伺服器的廣域和強大的穩定性,以及該服務在ios屬於固定的API介面,使得整個推送系統穩定而健壯。不過順便一提ios的郵件推送是另一套完整的PushMail系統,和這個無關。
那麼為什麼安卓的推送沒有ios給力?其實在Android2.2之後,谷歌也型凱建立了類似ios一樣的推送系統——Android Cloud to Device Messaging(C2DM),但是為什麼這個系統沒有APNS給力呢?主要是C2DM的伺服器對於國內來說是外面的東西,由於谷歌在國內受到了一些格外的照顧,這個伺服器也就顯得不那麼給力,這是國內廠商多不選擇C2DM的重要原因。另外Android開源和API的開放提供了其它推送的選擇。在C2DM不給力的情況下,一些軟體選回了老的輪詢方式的(凡是軟體里需要你自己選擇多長時間檢查一次有沒有更新的軟體都是輪詢方式)來提供消息,這種方式有相當的不穩定因素,在機器內存緊張的情況下駐留的http服務容易被回收,還更費電費流量。更多軟體廠商則選擇了利猜耐用Android的自由的XML的API介面自己搭建XMPP伺服器來直接向用戶推送消息,缺點同樣是駐留的服務容易被回收,尤其對於小內存機器和在內存管理上時常有技術性溢出(回收機制缺陷)的MIUI來說如果不鎖定服務的內存那麼就可能出現收不到推送的情況。總體看來由於安卓推送機制的缺陷和進程的不統一(你裝米聊微信微博就等於後台有了三個推送進程),整體上的健壯性得不到保證,也更加費電和費流量,與ios統一而健壯的推送服務有了很大的差距。
綜上所述安卓系統的推送問題是並不是MIUI小組可以企及的,就算MIUI強勢到能夠建立一個牆內的推送伺服器,也需要說服眾多的軟體廠商去使用他們的伺服器,這就意味著需要有「米聊MIUI版」「微博MIUI版」,更加加劇了安卓生態圈的分裂。
至於在Android4.0時代安卓能否改變這個現狀我只能持謹慎樂觀態度,因為其開源性和向下兼容的API整合使得這種現狀更有可能延續下去而不是改善。

熱點內容
下載安裝python 發布:2025-05-13 19:39:21 瀏覽:27
蘋果手機如何退出ad密碼 發布:2025-05-13 19:35:24 瀏覽:353
資本論中央編譯局 發布:2025-05-13 19:21:50 瀏覽:134
python路徑是否存在 發布:2025-05-13 19:08:38 瀏覽:570
保時捷卡宴哪個配置比較好 發布:2025-05-13 19:00:08 瀏覽:725
c語言負數運算 發布:2025-05-13 18:45:21 瀏覽:428
太空殺電腦版連接不到伺服器 發布:2025-05-13 18:40:19 瀏覽:457
同樣的配置為什麼跑分不同 發布:2025-05-13 18:39:06 瀏覽:278
獲取linuxcpu序列號 發布:2025-05-13 18:36:35 瀏覽:738
appleid為什麼連接伺服器出現問題 發布:2025-05-13 18:17:37 瀏覽:972