$.connection.hub.start().done(function () { //鏈接用戶 chatHub.server.onConnect(hubDbID, hubUserName); });
public void OnConnect(string dbID, string userName)
也能夠用viewData,若是對應頁面按鈕使用Ajax異步調用,能夠把把async: false,再去激活XXX按鈕執行如下方法異步
function registerMessagePopups(toUserIds, hubMessage, groupName) { //加入組 chatHub.server.addRoom(toUserIds, groupName); //發消息 chatHub.server.sendMessagePopups(hubMessage, groupName); }
public void AddRoom(string toUserIds, string groupName) public void SendMessagePopups(string message, string groupName)
chatHub.client.sendMessagePopupsByGroup = function (hubMessage) { alert("entesendMessagePopupsByGroup," + hubMessage); }
[HubName("msgHubMini")] public class MsgHub : Hub { static List<HubUser> hubUsers = new List<HubUser>(); public void OnConnect(string dbID, string userName) { var connectId = Context.ConnectionId; //當前用戶是否在 HubUser tempUser = hubUsers.Where(a => a.DbID == dbID).FirstOrDefault(); //每次刷新產生新ID代替 if (tempUser != null) { // 更新用戶connectId tempUser.ConnectionID = connectId; } else { //新增 hubUsers.Add(new HubUser { ConnectionID = connectId, DbID = dbID, UserName = userName }); } } public void AddRoom(string toUserIds, string groupName) { if (!string.IsNullOrEmpty(toUserIds) && !string.IsNullOrEmpty(groupName)) { //每次新創建組 IList<string> tempUserIDs = new List<string>(); for (int i = 0; i < hubUsers.Count; i++) { if (toUserIds.Contains(hubUsers[i].DbID)) { tempUserIDs.Add(hubUsers[i].ConnectionID); } } for (int j = 0; j < tempUserIDs.Count; j++) { Groups.Add(tempUserIDs[j], groupName); } } } public void SendMessagePopups(string message, string groupName) { if (!string.IsNullOrEmpty(groupName) && !string.IsNullOrEmpty(message)) { //Clients.All.sendMessagePopupsByGroup(message); Clients.OthersInGroup(groupName).sendMessagePopupsByGroup(message); } } }
var chatHub = $.connection.msgHubMini; $(function () { $.connection.hub.start().done(function () { //鏈接用戶 chatHub.server.onConnect(hubDbID, hubUserName); }); chatHub.client.sendMessagePopupsByGroup = function (hubMessage) { alert("entesendMessagePopupsByGroup," + hubMessage); } }); function registerMessagePopups(toUserIds, hubMessage, groupName) { //alert(toUserIds + ":::" + hubMessage + ":::" + groupName) //加入組 chatHub.server.addRoom(toUserIds, groupName); //發消息 chatHub.server.sendMessagePopups(hubMessage, groupName); }