Мы используем websocket-sharp в одном из наших приложений, который устанавливает соединение с нашим концентратором SignalR на сервере, мы можем отправлять текстовые сообщения и получать ответ за одно и то же, но не можем отправлять byte[]
.Как отправить файл в центр SignalR От websocket-sharp Client?
Код для отправки текста на сервер это:
public void TestGroupData(string groupname)
{
DataCarrier dataCarrier = new DataCarrier()
{
H = "BILHub",
M = "GetAllGroupsFor",
A = new string[] { groupname }
};
string wsPacket = JsonConvert.SerializeObject(payLoad);
this._ws.Send(wsPacket);
//this.MakeServerCall(dataCarrier);
}
Когда мы пытаемся отправить byte[]
, используя код, приведенный ниже, его не будет через:
public void TestFileData()
{
try
{
// Read the file data
Console.WriteLine("Started reading file");
string fileName = @"C:\Saurabh\Data\Song.mp3";
byte[] file = File.ReadAllBytes(fileName);
DataCarrier dataCarrier = new DataCarrier()
{
H = "BILHub",
M = "SendFile",
A = new object[] { file }
};
string wsPacket = JsonConvert.SerializeObject(dataCarrier);
this._ws.SendAsync(file , OnSendComplete);
}
catch (Exception ex)
{
Console.WriteLine(ex);
//throw;
}
}
Любая помощь с этим? Как установить имя моего концентратора в _ws.sendAsync()
?
Как было предложено @bsoulier, использование signalR отправить пример сообщения в режиме реального времени * ваш mp3 готов для скачивания, и как только вы получите сообщение, загрузите mp3 с api * – Eldho
Мне любопытно. Почему вы используете websocket-sharp, а не клиент SignalR? – xleon
Наши клиентские приложения разрабатываются с использованием xamarin, а клиент signalr не поддерживает websocket o mono platfrom, что заставило нас использовать websocket-sharb. @xleon –