Я начал что-то похожее на то, что вы просите, я делаю. В моем случае я использую ConnectionInfo.Path
, чтобы различать, что делают мои сокеты.
Вы можете получить много информации уже из ConnectionInfo
socket.ConnectionInfo.{Host|Path|Origin|SubProtocol|ClientIPAddress|Cookies}
Таким образом, чтобы ответить на ваш вопрос и передать его всем, кроме отправителя, вы можете различать каждый сокет на основе ConnectionInfo (если применимо, вы также можете создать UID из этой информации)
В качестве очень простого примера:
Если вы знаете, что у каждого Клиента будет свой IP-адрес, будет работать что-то вроде следующего:
socket.OnMessage = message =>
{
foreach (IWebSocketConnection socketConnection in allSockets.Where(socketConnection => socket.ConnectionInfo.ClientIpAddress != socketConnection.ConnectionInfo.ClientIpAddress))
{
socketConnection.Send("Echo: " + message);
}
};