【发布时间】:2017-02-16 12:18:27
【问题描述】:
我正在通过 ajax 发布请求向控制器中的方法发送一个我应该踢的字符串“用户名”。 是否可以从当前集线器中删除用户调用控制器中的方法?
public ActionResult Kick(string userName)
{
var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
var user = userService.GetUserByName(userName);
var room = chatRoomService.GetRoomById(user.ChatRoomId.Value);
user.IsKicked = true;
userService.LeaveRoom(user);
hubContext.Groups.Remove(user.ConnectionIdInHub, room.Name);
return Json(new {success = true});
}
我可以在这个方法的某个地方断开用户与集线器的连接吗?
【问题讨论】:
-
用户被踢了应该怎么办?根据您的架构,用户始终连接到集线器。
-
如果我以某种方式为他关闭集线器中的连接,他将不会再收到来自活跃用户的消息
-
@Toni 他在聊天室中时已连接到集线器。当他离开房间时,signalR 方法断开他的连接
标签: javascript c# ajax asp.net-mvc signalr