我正在從事一項工作,該工作將自動分配給員工,創建工作時應用程序將尋找最大空閒時間的員工。我可以廣泛投送通知給所有的員工,但我想知道如何發送通知,針對其工作是assigned.Just像Facebook員工每個用戶臨危他通知only.I我集線器類使用此語句如何使用信號將通知發送給特定員工R
Clients.All.broadcastMessage(message);
我正在從事一項工作,該工作將自動分配給員工,創建工作時應用程序將尋找最大空閒時間的員工。我可以廣泛投送通知給所有的員工,但我想知道如何發送通知,針對其工作是assigned.Just像Facebook員工每個用戶臨危他通知only.I我集線器類使用此語句如何使用信號將通知發送給特定員工R
Clients.All.broadcastMessage(message);
您正在廣播的消息給大家,我建議你使用Clients.User(userid)
獲取當前登錄的用戶string userName = HttpContext.Current.User.Identity.Name;
然後發送通知給特定的用戶,你可以有類似的東西。
Clients.User(userName).broadcastMessage(message);
你不得不承認用戶取決於connectionId。
這裏是一個很好的博客文章描述的:
http://www.tugberkugurlu.com/archive/mapping-asp-net-signalr-connections-to-real-application-users
我這個只有3天前掙扎,終於得到了它的工作。
假設你有一個名爲YourHub集線器類,你的JavaScript代碼看起來應該是這樣
$(function() {
var yourHub = $.connection.YourHub;
yourHub.client.OnMessage = function (message) {
console.log(message):
};
});
然後,你需要實現服務器,其接收IRequest上IUserIdProvider(應該有一個cookie或東西您識別人),且實施方法
public string GetUserId(IRequest request)
然後作爲的Izzy告訴你使用Clients.User(用戶ID).OnMessage(消息) 其中userid是您在GetUserId和的onMessage返回id是方法你的JavaScript文件。 要小心使用Clients.User(userId)而不是Clients.Client(userId)
它可能會讓你感到煩惱,因爲我是signalR的新手。 – killer 2014-10-02 09:22:03