天天看點

netty-socketio 示例代碼

一、服務端代碼

服務端的主要工作,就是添加各種事件的監聽,然後在監聽進行中,做相應的處理即可。

注:添加事件監聽時,如果重複添加監聽,會導緻事件被處理多次,是以最好在添加事件監聽前,先移除之前已經存在的監聽,類似下面這樣

  

二、用戶端代碼

用戶端類似,也是加一些事件監聽,然後做相應處理即可。

上面的例子,示範了client向server連接配接時,如何做基本的連接配接認證(基于token),以及基本的消息收發。

運作效果:

服務端輸出

sessionId:f52e9fa3-6216-4742-87de-3228a74469f9,token:87df42a424c48313ef6063e6a5c63297

client data:hello

用戶端輸出

sessionId:f52e9fa3-6216-4742-87de-3228a74469f9

hi

收到伺服器應答,将要斷開連接配接...

連接配接關閉

注:架構已經自帶了一些預設的事件,見下面的代碼片段

如果不夠的話,可以自行擴充,無非就是一些字元串常量。  

三、廣播消息隔離

前面的示例,沒有"域"的概念,所有連到socket server上的client,如果收發廣播的話,全都能收到,如果隻希望将消息發到指定的某一"批"使用者,可以讓這些client歸到某個域(或組織機構)裡,這樣在指定的域範圍内廣播,隻有在這個域内的client才能接受廣播,詳見下面的示例:(其實變化很小)

server端:

用戶端:

注意上面連接配接時,room1的指定,其它就不多說了,代碼就是最好的注釋:)