Erlide 的安裝使用

            erlang 開發平台很少,做JAVA開發的人做erlang開發,肯定會懷念eclipse中的快速鍵操作,配置調試,文法高亮等。Erlide則是這麼一款基於eclipse 的erlang開發外掛程式,目前的版本是0.13.9            安裝步驟如下:                     1.安裝erlang開發環境(版本至少為R13B-5)                     2.安裝eclipse                    

Erlang 從URL中截取尾部檔案名稱

      分析項目edownloader時看到的代碼:                    從 “http://www.aaaa.com.cn/download/bbb/ccc.exe”  中截取ccc.exeuri.hrl-record(uri, {scheme, %% "http", "ftp" user_info="", %% [] | "srp" host="", %% "somewhere.net"

Erlang mnesia(一) 產生sequence 查錯過程

        整了段代碼,想用mnesia資料庫來實作類別似於Oracle中sequence 的功能。原代碼如下:%% Author: Administrator%% Created: 2012-2-16%% Description: TODO: Add description to id_generator-module(id_generator).-behavior(gen_server).%%%% Include files%%%%%% Exported

Erlang gen_server:start_link/3 和gen_server:start_link/4

             兩個方法都可以用來啟動一個gen_server伺服器處理序,具體的參數如下:              gen_server:start_link(Module,Args,Option);              gen_server:start_link(ServerName,Module,Args,Option);               第二個方法只比第一個多了個ServerName,在gen_server的源碼中區別如下:start_link(Mod,

Erlang 聊天室程式(二) 用戶端的退出

               接著上一篇Erlang 聊天室程式(一) 。用戶端退出會導致伺服器端異常退出。               異常資訊如下:client sockt closed** exception exit: {bad_return_value,true}              顯然已經在client_session的 handle_info({tcp_closed,Socket},State)

Erlang 聊天室程式(三) 資料交換格式—json的decode

            霸哥的blog中提到過Erlang伺服器在通訊中與用戶端的資料交換方式:yufeng             為了簡單起見這個聊天室程式採用json,要使用到rfc4627這個庫             先定義一個Message類: public class Message {String id; //訊息IDString type; //訊息類型String from; //發送方String to; //接收方String subject;

同步、非同步、阻塞、非阻塞—我的理解

               同步、非同步、阻塞、非阻塞,涉及到一個問題的兩個層面。一個是操作operation/Thread/process 層面,另一個是kernal層面。所有的阻塞、非阻塞都在針對同步的情況下才有效。               同步與非同步最大區別在於是否需要底層的響應才能執行下去。               阻塞與非阻塞的區別在於是否能立即返迴響應。                             一個比較形象的例子如下:             

erlang(2) gen_server

通過前面的erlang(1)我們瞭解到了一個基本的伺服器的實現方法。erlang中為我們提供了這樣一個伺服器的現成的實現,就是gen_server,不用自己去編寫伺服器程式了。所要做的就是以下幾個事:1.確定我們回調模組的名稱2.編寫介面函數3.實現六個回調方法也就是說我們只需要關注於回調模組的實現就OK了。1: -module(XXXX)  定義模組名稱2:介面函數,可供調用的函數。     在這裡你可以定義所有需要的方法,作為功能調用的入口。    

Openfire 使用者離線、斷線 及心跳檢測

用戶端登出分為正常離線和斷線,正常離線會發送presence 訊息通知伺服器,斷線則無通知發送。1. 正常離線:用戶端在離線之前發送<presence id='***' type ="unavailable"></presence>由PresenceRouter 路由到PresenceUpdateHandler 中處理。判斷Type為unavailable

Openfire 好友狀態的發送(使用者登入)

            用戶端在登入 Openfire 時都會收到自己訂閱的好友狀態,那麼這個好友狀態是怎麼下發下去的呢?            使用者在登入後會發送一個<presence> 來更新自己的狀態,在PresenceRouter 中進行處理。 這個presence 交由PresenceUpdateHandler 處理,在判斷使用者為註冊使用者後使用RosterManager.getRoster() 來擷取所有已經訂閱的其他使用者。針對每個使用者判斷關聯類型,如果為SUB_

對對碰方塊交換及消去效果實現

    為了學習C#繪圖,前段時間下了個對對碰的原碼看了下。發現原作者的代碼中有些地方不夠理想:沒有方塊的互換位置,方塊消失這兩個效果,操作起來顯得很生硬。於是自己把整個代碼重寫了一遍,包括進度條。      方塊的互換包括以下幾步:      1.當使用者按下左鍵時檢測所選擇的"起始方塊"。      2.當使用者鬆開左鍵時根據游標所在方向判斷要交換的"目標方塊"。      3.用Timer實現兩個方塊的位置交換效果,並完成相應後台資料位元置的交換。     

ejabberd分析(二) 使用者註冊

ejabberd中由ejabberd_c2s處理:ejabberd_c2s模組啟動後gen_fsm的狀態位於wait_for_stream用戶端發送<stream:stream to="localhost" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">伺服器端wait_for_stream 函數中經過 case

Openfire 的 Cache機制

Openfire 中多處用到了Cache 來儲存那些訪問較為頻繁的資料,例如userManager中的userCache,rosterManager 中的rosterCache。以下為Openfire中Cache的實現機制:1. Cache 介面:interface Cache<K,V> extends java.util.Map<K,V>提供了基本的Cache介面方法。2. Cacheable 介面:interface Cacheable extends

一個S2S通訊中的同步、非同步問題的解決

             最近在搞Openfire S2S時遇到了一個資料通訊時的同步與非同步問題。具體描述如下:            OF中的基本通訊結構如下:        用戶端與伺服器的通訊是同步的,伺服器與伺服器之間的通訊卻是非同步:用戶端發送一個請求後就會阻塞一段時間,等待伺服器的響應;伺服器之間則採用訊息通知的方式非同步交流資料。        所以會出現下面這種情況:        

Openfire Could not locate home

                Openfire 開發環境搭建時容易出現Could not locate home 異常,主要由XMPPServer.java中以下代碼引起:private void initialize() FileNotFoundException{ locateOpenfire(); ......}private void locateOpenfire() throws FileNotFoundException{ String

OF 同步非同步問題的改進

                之前的一篇文章中提到過OF中的同步非同步問題,這裡針對文章最後描述的兩個缺點做些改進。        這裡提供一個公用的專門用於處理S2S通訊問題的IQ類S2SDataManager。        可以提供多種介面:1.阻塞等待固定時間長度;2.阻塞等待,並在接收到結果或逾時後繼續;3.發送後直接返回;4.發送後直接返回,提供回調介面。         public class S2SDataManager implements

ejabberd分析(四) 使用者登入

仍然看ejabberd_c2s 這個gen_fsm 模組。RECV <stream:stream to="localhost" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">SENT <?xml version='1.0' encoding='UTF-8'?><stream:stream

fqueue 訊息佇列(一)

             fqueue 是國內開發人員用JAVA開發的一款開源訊息佇列系統。訊息佇列可用來處理高並發量的資料庫讀寫操作,降低資料庫負載。fqueue的通訊層使用了netty架構,資料存放區則採用檔案隊列的方式。            儲存層主要的類有以下幾個:                             FQueue:主要的隊列實現主類,所有的訊息儲存與讀取都通過此類進行                             FSQueue:FQueue的底層實現,

ejabberd分析(五)+訂閱/添加好友

模組ejabberd_c2s中,狀態為session_established2。使用者發送iq set 訊息到伺服器<iq id="M8QF3-52" type="set"><query xmlns="jabber:iq:roster"><item jid="1555215557@kinglong"

fqueue(二)

          上一篇blog分析了fqueue 的資料存放區層的實現。這篇主要分析通訊部分。fqueue使用jmemcached做為通訊層,jmemcached與用戶端的互動使用netty架構。          主要的類如下:         startNewQueue:啟動類,每new一個instance 都會啟動一個監聽了相應連接埠的服務。        

總頁數: 61357 1 .... 8756 8757 8758 8759 8760 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.