More than Just Lines on a Map: Best Practices for U.S Bike Routes
Wcf call back
1. - Cacllbacklàgì:
Ví dụ bạn nhờ bạncủa mình làmviệcgì đó trongkhi bạn cũng đang làmviệccủa bạn(nghĩa là
bạn khôngrảnh đếnmức ngồi đợi bạncủa mìnhlàm xongviệc).Nhưngbạncần phải biếtkhi nào
bạn của bạn làmxongviệcđể bạn còn sắpxếpviệckhác(khôngthể biếtvìbạn còn đang làmviệc
của mình, cũng khôngthể địnhthời hỏi người đó xongchưa).Callbacknằmở chỗ là làmsao bạn
của bạn báo cho bạn biếtkhi họlàmxongviệccủa họ
Cơ chế request– response bìnhthườnglàkhi clientgửi yêucầu tới service vàservice trảlại
phảnhổi.
- Cách thức hoạt động của wcf duplex
Cách thức hoạt động làkhi Clientconnectvà gọi tới Server nó sẽ để lại thôngtincủa mình,sau
đó từ servernếubạn muốncallbackthì chỉ cần getra nhữngthôngtin đó làđược. Tất cả đều
được thực hiệnmộtcách tự độngvề mặt tạo endpointvàhostservice callbackcũngnhưtạo
channel callback.
Thông tinmà clientđăngký với Servercóthể làuser_name,v.vmiễnsaolàvới thôngtinđăng ký
đó thì Servercó thể gửi được dữ liệulênclient.
- Cách khai báo
- Đầu Service
Tạo một interface làm service callback là NvsContractService, sau đó khai báo type của service
callback cho service chính biết:
// B0
[ServiceContract(CallbackContract = typeof(NvsService_Callback))]
public partial interface NvsContractService
{
// Hàm đăng ký
2. [OperationContract]
void Subscribe(string p_id);
// Hàm hủy đăng ký
[OperationContract]
void UnSubscribe(string p_id);
}
// B1 đây là các hàm mà service sẽ sử dụng để đẩy dữ liệu lên client
// Phía trên client phải khai báo đầy đủ các hàm này để Service có thể hoạt động
được
public interface NvsService_Callback
{
[OperationContract]
void PushMessage(Message_Info _data);
[OperationContract]
void PushSession(Session_Info _data);
[OperationContract]
void PushData(string _data);
}
// B2 Service WCF khởi tạo InstanceContextMode dạng Single
3. Ở dưới service sẽ khởi tạo1 Dictionary<string, NvsService_Callback> để lưu lại thông
tin đăng ký từ phía đầu client. Từ đây ta có thể lấy thông tin về client và đẩy dữ
liệu lên client.
- // B3 Đẩy dữ liệu từ Service lên client
- Đầu client
Sau khi add xongreference thìtaphải khai báođầy đủ 3 hàm callbackmà đã tạo ở bước B1