乙個client傳送訊息給orleans, 就只需要掉用grain的函式就行了. 但是有時候grain需要傳送訊息給client, 在orleans裡面, 就只能通過observer
來實現.
1public
inte***ce
ichat : igrainobserver25
6public
class
chat : ichat712
}1314class
hellograin : grain, ihello
1522
public
async
task subscribe(ichat observer)
2326
public
async
task unsubscribe(ichat observer)
2730}31
32public task sendupdatemessage(string
message)
3337
38//
下面就是grain傳送訊息給client的**
39var friend = grainclient.grainfactory.getgrain(0
);40 chat c = new
chat();
4142
var obj = await grainclient.grainfactory.createobjectreference(c);
43await friend.subscribe(obj);
有了上面的**, 我們就可以按照自己的需求造乙個廣播出來.
1enum
desttype27
8//這是我們的觀察者
9public
inte***ce
igatewayobserver : igrainobserver
1013
14public
inte***ce
iallgatewaygrain : igrainwithintegerkey
1526
27public
inte***ce
igatewaygrain : igrainwithstringkey
28
上面是介面的設計, 然後只需要在client啟動的時候, 把自己註冊到兩個grain
裡面去, 然後其他的grain就可以通過兩個grain來傳送針對所有人
,伺服器
, 和個人
的訊息了.
傳送廣播訊息BroadcastRecevice
broadcastrecevice的介面設計,拖選乙個textview和兩個buttonackage com.example.broadcastreceviewerdemo import android.os.bundle import android.content.intent import a...
udp傳送廣播訊息
import socket if name main 建立udpsocket udp socket socket.socket socket.af inet,socket.sock dgram 設定socket選項,開啟傳送廣播訊息的功能 1.sol socket 當前socket 2.so bro...
C 利用UdpClient傳送廣播訊息
首先寫個接受訊息的客戶端。這裡偷了點懶,new udpclient 11000 就是用udp方式偵聽11000埠,偵聽任何傳送到11000埠的訊息都會接收到。udpclient udpclient new udpclient 11000 try ipendpoint remoteipendpoint...