Time of Update: 2018-12-06
用戶端A向B 傳送檔案的過程:兩個XMPP節點之間傳輸檔案一般有三種方式:Out-of-Band Data 具體見XEP-0066: 點擊開啟連結in-band bytestream 適合傳輸較小的資料,通過直接攜帶在XML中進行傳輸 具體見:XEP-0047:點擊開啟連結socks5 通過伺服器代理的方式,實現兩個節點之間的直接傳輸以下為通過socks5
Time of Update: 2018-12-06
erlang 開發平台很少,做JAVA開發的人做erlang開發,肯定會懷念eclipse中的快速鍵操作,配置調試,文法高亮等。Erlide則是這麼一款基於eclipse 的erlang開發外掛程式,目前的版本是0.13.9 安裝步驟如下: 1.安裝erlang開發環境(版本至少為R13B-5) 2.安裝eclipse
Time of Update: 2018-12-06
整了段代碼,想用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
Time of Update: 2018-12-06
霸哥的blog中提到過Erlang伺服器在通訊中與用戶端的資料交換方式:yufeng 為了簡單起見這個聊天室程式採用json,要使用到rfc4627這個庫 先定義一個Message類: public class Message {String id; //訊息IDString type; //訊息類型String from; //發送方String to; //接收方String subject;
Time of Update: 2018-12-06
上一篇實現了json資料到message記錄的轉換,這篇則是將message還原為json以便發送給用戶端。
Time of Update: 2018-12-06
接下來實現設定用戶端資訊功能,使用戶端可以設定自己的名稱、性別、年齡、所做省份等資訊。我們暫時不管用戶端如何?,先對伺服器端代碼進行調整。 這裡需要做以下幾件事: 1.修改client_session中handle_info({tcp,Socket,Data},State) 函數對接收到的訊息包的處理,使其能支援“用戶端資訊設定訊息”。
Time of Update: 2018-12-06
二話不說先:1.欄位較少時:效果如下:各列的寬度正常,都是按設定顯示的。當欄位較多時:為了能在螢幕上全部顯示出來各個欄位都擠在了一塊,設定的DIV的滑動不起作用。後台綁定各欄位的代碼:BoundField bf = new BoundField(); bf.DataField = title_info[2,j]; bf.HeaderText = title_info[4,j];
Time of Update: 2018-12-06
同步、非同步、阻塞、非阻塞,涉及到一個問題的兩個層面。一個是操作operation/Thread/process 層面,另一個是kernal層面。所有的阻塞、非阻塞都在針對同步的情況下才有效。 同步與非同步最大區別在於是否需要底層的響應才能執行下去。 阻塞與非阻塞的區別在於是否能立即返迴響應。 一個比較形象的例子如下:
Time of Update: 2018-12-06
發送給其它伺服器的訊息由@domain 部分區分,在進入到伺服器路由後在RoutingTableImpl.routePacket(Packet packet) 中與發送給本機伺服器的訊息分離。public void routePacket(JID jid,......){ boolean routed = false; if(serverName.equals(jid.getDomain())){ routed =
Time of Update: 2018-12-06
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
Time of Update: 2018-12-06
運行Openfire 後出現以下報錯:Error loading plugin: C:\Program Files\Openfire\plugins\monitoringjava.lang.NoClassDefFoundError: org/picocontainer/MutablePicoContainer at java.lang.Class.getDeclaredConstructors0(Native Method) at
Time of Update: 2018-12-06
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
Time of Update: 2018-12-06
ejabberd的啟動從ejabberd:start() 開始。application:start(ejabberd).application用來表示一個可以單獨啟動和停止、並被複用的程式單元。通常一個application都有一個同名的app檔案來定義。對於系統工具(systool)直接調用的app檔案必須包含以下幾項:description, vsn, modules, registered, applications我們查看ejabberd.app可以看到以下內容:
Time of Update: 2018-12-06
之前的一篇文章中提到過OF中的同步非同步問題,這裡針對文章最後描述的兩個缺點做些改進。 這裡提供一個公用的專門用於處理S2S通訊問題的IQ類S2SDataManager。 可以提供多種介面:1.阻塞等待固定時間長度;2.阻塞等待,並在接收到結果或逾時後繼續;3.發送後直接返回;4.發送後直接返回,提供回調介面。 public class S2SDataManager implements
Time of Update: 2018-12-06
仍然看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
Time of Update: 2018-12-06
http://q.cnblogs.com/q/40850/ 以前的問題。在mvc裡面可以但是mvc api就不行了。。 提供下解決方案: <httpRuntime enableVersionHeader="false" relaxedUrlToFileSystemMapping="true" /><system.webServer><validation validateIntegratedModeConfiguration="false"
Time of Update: 2018-12-06
暫不支援chrom 。支援safari .其他未測試 先引用 jquery 地址。選用新浪的<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.6/jquery.js"></script> 加一個video標籤 <video id="video" controls="controls"><source src="1.mp4"
Time of Update: 2018-12-06
有時候本地寫代碼,裡面有很多判斷。或者參數直接傳遞啥的就需要用到 是否是本地環境,如果不是本地環境,正常訪問。如果是本地環境,則直接返回資料等以前是直接判斷127.0.0.1或者其他的。now:HttpRequest.IsLocal 可以實現不管是localhost 開頭或者是iis 的127.0.0.3ip訪問。還是直接host綁定網域名稱 asd.com訪問,都可以正常判斷首先加一個拓展方法 public static class HttpRequestMessageExtensions
Time of Update: 2018-12-06
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;
Time of Update: 2018-12-06
1.看代碼,分析結構,看功能。2.如果是你開發的話,先寫文檔,如果沒有模組,用excel列出功能模組就行。3.開發的第一件事就是:資料庫設計。即設計模型(E-R),不需要畫,要明白資料庫怎麼樣存放,忘記範式、忘記關係。4.開發:代碼編寫,完全基於資料庫,忘記三層結構、忘記設計模式(依照公司的要求而定),用最快的速度實現代碼,效率可以不考慮。5.測試功能,如果功能完全實現了,修改程式,解決效率問題。6.從開發環境到成戶環境。