Broadcast
Die Methode basiert auf der WebSocketCollection
Klasse definiert. Wenn Sie eine LINQ-Abfrage auf WebSocketCollection
anwenden, erhalten Sie eine IEnumerable<WebSocketHandler>
, die eine Broadcast
-Methode nicht aufweist.
Sie können einen neuen WebSocketCollection
erstellen und fügen Sie dann die einzelnen Positionen der Add
Methode wie folgt verwendet:
var handlers = group.Except(group.Where(r=>((MicrosoftWebSockets)r).user_id==1));
var collection = new WebSocketCollection();
foreach(var item in handlers)
{
collection.Add(item);
}
collection.Broadcast("Message");
Sie diese Logik in eine Erweiterung Methode wie folgt wickeln könnte:
public static class ExtentionMethods
{
public static WebSocketCollection ToCollection(this IEnumerable<WebSocketHandler> handlers)
{
var collection = new WebSocketCollection();
foreach (var item in handlers)
{
collection.Add(item);
}
return collection;
}
}
Und Verwenden Sie es wie folgt:
group.Except(group.Where(r=>((MicrosoftWebSockets)r).user_id==1))
.ToCollection()
.Broadcast("Message");
Durch die w ay, Ihre LINQ-Abfrage kann durch Negieren des Zustandes, wie dies in einer besseren Art und Weise erfolgen:
group.Where(r=> !(((MicrosoftWebSockets)r).user_id == 1))
.ToCollection()
.Broadcast("Message");
wird diese Arbeit '((WebSocketCollection) group.Except (group.Where (r => ((MicrosoftWebSockets) r) .user_id == 1))). Broadcast ("Message") ' –
ich diese Fehlermeldung erhalten, während kann nicht Gussobjekt von Typ ' d__72'1 [Microsoft.Web.WebSockets.WebSocketHandler]' eingeben‚Microsoft .Web.WebSockets.WebSocketCollection '. –
deepakgates