redis是乙個快速、穩定的發布/訂閱的資訊系統。
這裡有相關的介紹
可以用這個發布訂閱系統,實現聊天功能。
1,假設有兩個使用者,分別是user1和user2,各建立乙個redis連線。
u1 = redis.new
u2 = redis.new
2,u1訂閱乙個頻道channel1
u1.subscribe "channel1
" do |on|on.subscribe do |channel, subscriptions|puts
"subscribed to ## (# subscriptions)
"end
on.message do |channel, msg|puts
"#: #
"end
end
u1進入監聽等待狀態
#subscribed to #channel1 (1 subscriptions)
3,u2發布一條訊息
u2.publish 'channel1
', '
hello
'
4,u1收到新的訊息,並列印出來
#subscribed to #channel1 (1 subscriptions)
#channel1: hello
5,block塊中,有三種**型別,已經看到的前2種,subscribe和message,第三種是unsubscribe。
redis.subscribe(:one, :two) do |on|#channel:當前的頻道,subscriptions: 第幾個頻道
on.subscribe do |channel, subscriptions|puts
"subscribed to ## (# subscriptions)
"end
#channel:當前的頻道,message: 訊息內容
on.message do |channel, message|puts
"##: #
"redis.unsubscribe
if message == "
exit
"end
# on.unsubscribe do |channel, subscriptions|puts
"unsubscribed from ## (# subscriptions)
"end
end
ps:**來自
可以在訊息定義各種規則,來實現頻道的管理。
6,下面介紹一下發布和訂閱相關的一些方法。
psubscribe。訂閱給定的模式。
redis.psubscribe('c*') do |on|on.psubscribe do |channel, subscriptions|puts
"subscribed to ## (# subscriptions)
"end
on.pmessage do |pattern, channel, message|puts
"##: #
"redis.unsubscribe
if message == "
exit
"end
on.punsubscribe do |channel, subscriptions|puts
"unsubscribed from ## (# subscriptions)
"end
end
和subscribe的區別是引數是匹配的模式,block中的三個方法也對應的變化了。
redis ruby客戶端學習 二
1,雜湊 map require redis r redis.new r.hset my hash field1 001 r.hget my hash field1 r.hdel my hash field1 r.hexists my hash field1 r.hgetall my hash r....
Hprose for Java客戶端(四)
b size x large 異常處理 size b b size large 同步呼叫異常處理 size b 同步呼叫下的發生的異常將被直接丟擲,使用try.catch語句塊即可捕獲異常,通常伺服器端呼叫返回的異常是hproseexception型別。而如果通訊發生錯誤,一般為ioexceptio...
瘦客戶端 胖客戶端 智慧型客戶端
胖客戶端模式將應用程式處理分成了兩部分 由使用者的桌面計算機執行的處理和最適合乙個集中的伺服器執行的處理。乙個典型的胖客戶端包含乙個或多個在使用者的pc上執行的應用程式,使用者可以檢視並運算元據 處理一些或所有的業務規則 同時提供乙個豐富的使用者介面做出響應。伺服器負責管理對資料的訪問並負責執行一些...