跳到主要內容

發表文章

目前顯示的是有「rfc3920」標籤的文章

目前 正著手進行 gtalk 相關計畫

目前正在進行gtalk 的機器人實作,我想把google的(英翻中)翻譯做在gtalk 上,這當然不是什麼新鮮的事,而且目前google 已經釋出相關的功能,不過;獨缺英文->繁體中文,沒錯! 我就是想做世界第一個英翻中(繁體)的機器人,事實上我只是想展示公司在xmpp 上的應用能夠做到什麼程度,如果我們撇開rfid middle 的xmpp server應用,這應該是我第一次在gtalk 上做相關應用 目前;已經突破gtalk 使用TLS 的認證部份,整個工作大概完成了40%,希望能夠在這個星期前釋出第一個版本

[微程式-技術研討會] 12月份研討會 主講人 ZNUL [XMPP RFC3920 10-~15章]

Xmpp Rfc3920 10-~15章 研討會報告 10. 伺服器處理XML節的規則 (Server Rules for Handling XML Stanzas) 相容的伺服器實做必須(MUST)確保兩個實體之間的XML節按次序處理. 除了按次序處理的需求之外, 每個伺服器實作將包含它自己的遞送樹"delivery tree"以處理它接收到的節.這個樹決定一個節是否需要路由到其他域, 在內部處理, 還是遞送到和一個已連接的節點相關的資源. 以下規則適用: ________________________________________ 10.1. 沒有'to'地址 (No 'to' Address) 如果這個節沒有'to'屬性, 伺服器應該(SHOULD)為發送它的實體處理這個節. 因為所有從其他伺服器收到的節必須(MUST)擁有'to'屬性, 這個規則僅適用於從一個連接到這台伺服器的已註冊實體(如一個用戶端)收到的節,如果這個伺服器收到一個沒有'to'屬性的出席資訊節, 伺服器應該(SHOULD)向那些訂閱了這個發送實體的出席資訊的所有實體廣播它, 如果可能的話(即時消息和出席資訊應用程式中出席資訊廣播的語義定義在XMPP-IM). 如果伺服器接收到一個IQ類型為 "get" 或 "set" 且沒有'to'屬性的節並且它理解這個節的名字空間下的內容, 它必須(MUST)為這個發送實體處理節(在這裏"處理"的含義是由相關的名字空間的語義所決定的)或返回一個錯誤給發送實體. #c to s 可以不用有 to 屬性 ,因為c to s 預設的 to 即是 server #若是出席訊息<presence>沒有to屬性,即為廣播給所有訂閱者,rfc3921第五章說明如下: (5.1.1初始化出席資訊 : 建立起一個會話之後, 一個用戶端應該(SHOULD)發送初始化出席資訊給伺服器來通知它的通信可用性.如這裏定義的, 初始化出席資訊節 (1) 必須(MUST) 不擁有'to'屬性(這表示它是由伺服器代替用戶端發送的廣播) 並且 (2) 必須(MUST) 不擁有'type...

RFID智慧型護送系統建置計畫

昨天接獲資訊: 微程式資訊 以專業技術與成功建置經驗獲得經濟部大型示範性計畫 『RFID智慧型護送系統建置計畫』 的支持,為醫療領域結合IT科技再跨出一步。 這可是一個將近兩千萬的專案阿,不過這事實上是一個XMPP 的應用,我們在XMPP 建置了一些訊息的交換邏輯,讓訊息在XMPP 上交易所產生的應用,業界這幾年對 concurrent programming 需求殷切,主要是因為資訊系統跳了一個層次在看訊息傳遞這回事,當大量資訊需要即時 精確的被傳遞時,過去的那種multiprocess mutithread 不敷使用,一個動輒上萬的長時間連線交易,更需要像erlang 這類以 concurrent programming 為觀點出發的語言,而這也同時是我會接觸functional language的主要原因 計畫相關聯結: http://www.program.com.tw/news/news_071129.htm http://blog.sina.com.tw/sandychang/article.php?pbgid=40436&entryid=575124

[微程式-技術研討會] 10月份研討會內容 主講人 vivian

1. 繼續分享xmpp的討會 3.5 地址的確認 在SASL(見第六章)握手之後(如果必要的話,也在資料綁定(見第七章)之後,正在接收信息的實體必須(MUST)確認初始實體的ID 對於服務器間的通信,在SASL握手時,如果沒有指明授權的ID,這個初始的實體應該(SHOULD)是經過認證實體(參見簡單認證和安全層協議[SASL]中的定義)授權的ID(見第六章) 對於客戶端和服務器的通信, 在SASL握手時, 如果沒有指明授權的ID, “純JID” (<node@domain>)應該(SHOULD)是經過認證實體(參見[SASL]中的定義)授權的ID, “全JID”(<node@domain/resource>)的資源ID部份應該(SHOULD)是由客戶端和服務器在資源綁定的時候商定的(參見第七章) 4.1 XML流 / XML節概覽 XML流(XML Stream)的定義: 一個XML流乃是一個容器, 包含了2個實體之間通過網絡交換XML元素, 一個XML流乃由一個<stream>標籤開始的(該標籤需包含適當的屬性及名字空間聲明), XML流的結束則是由</stream>標籤做為結束, 在XML流的整個生命週期中, 初始化它的實體可以通過流來發送大量的XML元素, 例如:TLS協議(第5章),SASL協議(第6章)或XML節(在這裡指的是符合預設名字空間的元素, 包括<message/>,<presence/>,<iq/>元素), “初始的XML流"由初始實體(通常是一個客戶端或服務器)和接收實體(通常為一個服務器)協議, 從接收實體來看, XML流就是那個初始實體對接收實體的 “會話”, 接收實體則必需回覆一個相同的應答流給初始實體 Ex: <stream> è xml流開始 ………………………………. ………………………………. </stream> è xml流結束 XML節(XML Stanzas)的定義 : 一個XML節是一個實體通過XML流向另一個實體發送結構化信息中的一個離散語意單位, 一個XML節乃直接存於根元素<stream/>之下, 也就是說任何XML都是從一個XML流的下一級的某個OPEN標籤(如: <presence>)開始的, 並相對應到其CLOSE標籤(如: </presence>)做為結束, 一個XML節可以包含子元素(例如: 屬...

[微程式-技術研討會]xmpp(rfc-3920) 導讀

XMPP協定導讀 一. 什麼是jabber? 什麼是xmpp? The Extensible Messaging and Presence Protocol (XMPP) is an open Extensible Markup Language XML [XML] protocol for near-real-time messaging, presence, and request-response services. The basic syntax and semantics were developed originally within the Jabber open-source community, mainly in 1999. In 2002, the XMPP WG was chartered with developing an adaptation of the Jabber protocol that would be suitable as an IETF instant messaging (IM) and presence technology. As a result of work by the XMPP WG, the current memo defines the core features of XMPP 1.0; the extensions required to provide the instant messaging and presence functionality defined in RFC 2779 [IMP REQS] are specified in Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence [XMPP IM]. 二. Socket/XMPP 程式需注意的幾個重點 1.架構(select poll epoll AIO kqueue IOCP / Thread / Process / LWP) 2.setsockopt比較值得討論的參數 setsockopt( $listen,SOL_SOCKET,SO_REUSEADDR,1); 伺服端 setsockopt( $sockfd...

jabber 的歷史

Jeremie Miller於1998年開始了這個項目。第一個公開版本於2000年5月發行。這個項目的主要產品是jabberd,Jabber的伺服器端軟體。它既可以創建私人的Jabber網路,也可以加入全球的公共Jabber網路。Jabber的關鍵特色是,分散式的即時通訊系統,以及使用XML串流。 Jabber協定目前由Jabber軟體基金會管理,而Jabber協定的主要基礎已經在RFC3920當中以XMPP之名被網際網路工程工作小組(IETF)接受為網際網路標準。Jabber和以SIP協定為基礎的SIMPLE常被視為為即時通訊及Presence告知領域的競爭對手,然而XMPP的設計更傾向提供一個一般用途的、應用程式之間的中介軟體設施。 2005年,Google發佈了Google Talk,這是一個IP電話及即時通訊的服務,即時通訊功能採用了開放的Jabber/XMPP。預計這將對Jabber社區起很大的推動作用。初期此服務不支援伺服器到伺服器的通訊功能,所以未能完全發揮Jabber的分散式特色。2006年1月17日起,伺服器到伺服器的通訊啟用了,Google Talk用戶可與其他Jabber公共網路的用戶對談。

ejabberd 使用 Erlang 開發IM Server

最近在思考 message center 所使用的 jabber server要自己寫還是用現成 的server,自己寫不是不可能只是可能要花的時間可能會比較久,於是參考了 ejabberd 他的網站提到 ejabberd is a free and open source instant messaging server written in Erlang. 從來沒聽過語言,查了一下 Erlang is a programming language designed at the Ericsson Computer Science Laboratory. Open-source Erlang is being released to help encourage the spread of Erlang outside Ericsson. 看來是一種非oo 非程序 的functional programming language,有點類似 Haskell,最有趣的是他是跨平台的語言,而讓我驚奇佩服的是,ejabberd 居然可 以把功能做的這麼完善,真是高手中的高手