首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从websocket客户端向SignalR集线器发送文件?

如何从websocket客户端向SignalR集线器发送文件?
EN

Stack Overflow用户
提问于 2016-09-19 09:18:57
回答 1查看 10.6K关注 0票数 2

我们在我们的一个应用程序中使用websocket-sharp,它与服务器上的SignalR集线器建立websocket连接,我们能够发送文本消息并接收相同的响应,但不能发布byte[]

向服务器发送文本的代码如下:

代码语言:javascript
复制
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[]时,它不会通过:

代码语言:javascript
复制
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()中设置集线器名称

EN

回答 1

Stack Overflow用户

发布于 2016-09-19 11:26:03

发送大文件并不是真正意义上的SignalR。

SignalR很适合在服务器和客户端之间使用实时消息传递,用于较小的消息(因为messahe大小有对业绩的实际影响)。

为了满足这种需要,我将研究ASP.NET Web,特别是使用分块上传 (将文件分割成多个片段以避免连接中断)。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39569519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档