Как десериализовать ArraySegment в object внутри WebSocke? Я закоментировал часть кода в которой пытался это сделать, к примеру я пытался использовать такую конструкцию:
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream(buffer.Array);
getMsg = bf.Deserialize(ms);
но она разрывает веб сокет и соответственно не подходит, я ее и в отдельном треде юзал и что только не пробовал. Слышал, что мою проблему можно решить с помощью SignalR но примеров так и не нашел
private async Task WebSocketRequest(AspNetWebSocketContext context)
{
// Получаем сокет клиента из контекста запроса
var socket = context.WebSocket;
// Добавляем его в список клиентов
Locker.EnterWriteLock();
Clients.Add(socket);
Locker.ExitWriteLock();
// Слушаем его
while (true)
{
var buffer = new ArraySegment<byte>(new byte[1024]);
// Ожидаем данные от него
var result = await socket.ReceiveAsync(buffer, CancellationToken.None);
using (MemoryStream ms = new MemoryStream(buffer.Array))
{
IFormatter br = new BinaryFormatter();
getMsg=(object)br.Deserialize(ms);
}
//Thread SerializeThread = new Thread(delegate ()
//{
// BinaryFormatter bf = new BinaryFormatter();
// MemoryStream ms = new MemoryStream(buffer.Array);
// getMsg = bf.Deserialize(ms);
//});
//SerializeThread.Priority = ThreadPriority.Normal;
//SerializeThread.Start();
//var segment = new ArraySegment<byte>(buffer.Array, 24, buffer.Array.Length);
//var stream = new MemoryStream(segment.Array, segment.Offset, segment.Count);
//BinaryFormatter bf = new BinaryFormatter();
//MemoryStream ms = new MemoryStream(buffer.Array);
//object obj = bf.Deserialize(ms);
//Dialog dlg= obj as Dialog;
//db.Dialogs.Add(dlg);
//db.SaveChangesAsync();
//Передаём сообщение всем клиентам
for (int i = 0; i < Clients.Count; i++)
{
WebSocket client = Clients[i];
try
{
if (client.State == WebSocketState.Open)
{
await client.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);
}
}
catch (ObjectDisposedException)
{
Locker.EnterWriteLock();
try
{
Clients.Remove(client);
i--;
}
finally
{
Locker.ExitWriteLock();
}
}
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как у canvas в unity через скрипт получить его дочерний button, чтобы потом иметь возможность обращаться к нему и проверять на нажатия ? Пробовал так:
Подскажите есть ли обработчик closeconnect TcpClient?Нужен для вывода информации о дисконнекте
В C# (windows forms) добавил новый язык к форме, изменил текст компонентов и тд, создался файл ресурсов для языка который добавил, добавил свою строку...
Использую библиотеку CefSharpСтолкнулась с проблемой обновления файлов