Asp.Net Mvc WebSocket - 客户端的自定义参数
Posted
技术标签:
【中文标题】Asp.Net Mvc WebSocket - 客户端的自定义参数【英文标题】:Asp.Net Mvc WebSocket - Custom Arguments for Clients 【发布时间】:2018-05-30 14:53:34 【问题描述】:我的 WebSocket 结构如下。
public HttpResponseMessage Get(int id, string kod)
if (HttpContext.Current.IsWebSocketRequest)
HttpContext.Current.AcceptWebSocketRequest(new SocketHandler(id, kod));
return Request.CreateResponse(HttpStatusCode.SwitchingProtocols);
else
return Request.CreateResponse(HttpStatusCode.BadRequest);
class SocketHandler : WebSocketHandler
DnaEntities db = new DnaEntities();
private static WebSocketCollection Clients = new WebSocketCollection();
private Yonetim_Kullanici Kullanici;
public SocketHandler(int KullaniciId, string OturumKontrolKod)
var sorgu = db.Yonetim_Kullanici.Where(k => k.Id == KullaniciId && k.OturumKontrolKod == OturumKontrolKod && k.Durum == 1);
if (sorgu.Count() == 1)
Kullanici = sorgu.FirstOrDefault();
public override void OnOpen()
if (Kullanici != null)
Clients.Add(this);
base.OnOpen();
public override void OnClose()
Clients.Remove(this);
base.OnClose();
public override void OnMessage(string data)
foreach (var item in Clients)
var data = item.Kullanici
//item.Send();
如下,我可以发给大家。
Clients.Broadcast(message);
但是,当我想一一发送时:
foreach (var item in Clients)
var UserModel = item.Kullanici;
错误信息:
“WebSocketHandler”不包含“Kullanici”的定义,并且 没有扩展方法“Kullanici”接受类型的第一个参数 可以找到“WebSocketHandler”。
item.Kullanici => 正如您在picture 中看到的那样
【问题讨论】:
【参考方案1】:我认为您应该能够首先将其转换为继承的类,例如
var UserModel = ((SocketHandler)item).Kullanici
您还没有显示它,但我会假设 Clients
中的项目属于 WebSocketHandler
类型
【讨论】:
谢谢。是的,演员阵容是个好主意。 @ADyson 第二个问题? @BarışSamedHalıcı 如果您还有第二个问题,请在新帖子中创建第二个单独的问题。我回答了当时显示的原始问题。由于人们通过回答问题获得积分,因此您不能永远向同一个帖子添加更多问题。如果我的回答对您的原始问题有所帮助,请标记为已接受。如果您需要我对另一个问题的帮助,请在此处发表评论并附上指向它的链接。谢谢。 是的,这是真的。但第二个问题是第一个问题的延续。第二个问题的答案可能会因第一个问题的选择而异。谢谢。 如果您仍然坚持,我提出一个新问题。没问题。 据我所知,我的答案是第一个问题的唯一解决方案,因此两者之间没有任何直接联系。您希望将 Kisisel_Bildirimlerim 对象列表中的值与 SocketHandler 对象列表中的某些值进行比较。老实说,它们是如何存在的(例如通过铸造或其他方法)并不真正相关。所以是的,请提出一个新问题......但首先对 C# 中的列表进行比较研究,可能已经存在一个您可以适应的原则的一般示例。以上是关于Asp.Net Mvc WebSocket - 客户端的自定义参数的主要内容,如果未能解决你的问题,请参考以下文章
传输了几条消息后,ASP.NET MVC 4.5 WebSocket 服务器失去连接
.NET异步性能测试(ASP.NET MVC WebAPI异步方法)
ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室之 图文,附件消息(2016-05-05 12:13)