$.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); }