如何发送文件到SignalR hub从websocket尖锐的客户端?
我们在我们的应用程序中使用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()
中设置我的中心名称?
Sending big files是不是真的是什么SignalR的意思。
SignalR有利于实时消息服务器之间目的&客户,一个相当小尺寸的消息(如messahe大小有real impact on performance)。
对于这样一个需要我会去了解一下的ASP.NET Web API,尤其是通过使用chunked upload(分割文件多件,以避免连接中断)
如果你从外部资源添加更多细节 – Eldho
我会认为相同,但是那个代码太多了, Google如何使用ASPNET对文件进行块/合并很容易。 – bsoulier
我们已经有了一个使用webapi和多部分数据上传的大文件的解决方案,SignalR Client不支持我们使用[websocket-sharp](https://github.com/sta)的xamarin(单声道)上的websocket。/websocket-sharp),在websocket-sharp中有一个用于发送文件的方法,'ws.SendAsync(data,completed)',我如何使用这个方法与我的集线器是我们正在寻找的。 –
正如@bsoulier建议,使用signalR发送实时消息,例如*您的mp3已准备好下载,一旦您收到消息从api下载mp3 * – Eldho
我很好奇。为什么你会使用websocket-sharp而不是SignalR客户端? – xleon
我们的客户端应用程序使用xamarin开发,信号客户端不支持websocket或单声道平台,这使我们使用websocket-sharb。 @xleon –