Как решить проблему с тем, что сообщение #2(UserConnectionMessage) приходит иногда раньше, чем #1(AuthMessage) ?
WebSocketServer:
var authMessage = new Payloads.Server.AuthMessage()
{
Message = "SUCCESS",
UsersList = server.ConnectedSockets.Values.Select(user => user.Login).ToArray()
};
// Отправка сообщения подключенному клиенту об авторизации
// статус SUCCESS и список пользователей UsersList
socket.Send(Helper.BuildMessage(authMessage));
server.ConnectedSockets.Add(socket, userData);
var userConnectionMessage = new Payloads.Server.UserConnectionMessage()
{
Login = server.ConnectedSockets[socket].Login,
Status = "CONNECT"
};
// Отправка сообщения всем пользователям о новом подключенном клиенте
// логин и статус CONNECT
server.SendToAll(userConnectionMessage);
WebClient:
OnMessage = (message) => console.warn(message);
Из-за этой проблемы клиентское приложение работает некорректно, т.к. порядок сообщений нарушен:
{
"Type": "USER_CONNECTION_MESSAGE",
"Payload": {
"Login": "admin2018",
"Status": "CONNECT"
}
}
{
"Type": "AUTH_MESSAGE",
"Payload": {
"Message": "SUCCESS",
"UsersList": []
}
}
порядок ненормальный:
порядок нормальный: