我們在我們的應用程序中使用websocket-sharp,它在服務器上與我們的SignalR Hub建立websocket連接,我們能夠發送文本消息並接收響應,但無法發佈byte[]
。如何發送文件到SignalR hub從websocket尖銳的客戶端?
代碼發送短信到服務器是這樣的:
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已準備好下載,一旦您收到消息從api下載mp3 * – Eldho
我很好奇。爲什麼你會使用websocket-sharp而不是SignalR客戶端? – xleon
我們的客戶端應用程序使用xamarin開發,信號客戶端不支持websocket或單聲道平臺,這使我們使用websocket-sharb。 @xleon –