小编Rob*_*vey的帖子

如何解决背板扩展中SignalR的局限性

我使用ASP.NET MVC和C#.我发现SignalR实时传输数据,但signalR有一些限制.

根据这个问题:

使用背板时,最大消息吞吐量低于客户端直接与单个服务器节点通信时的吞吐量.这是因为背板将每条消息转发到每个节点,因此背板可能成为瓶颈.此限制是否存在问题取决于应用程序.例如,以下是一些典型的SignalR场景:

  • 服务器广播(例如,股票代码):背板适用于此场景,因为服务器控制消息的发送速率.
  • 客户端到客户端(例如,聊天):在这种情况下,如果消息数量与客户端数量成比例,则背板可能成为瓶颈; 也就是说,如果消息的速率随着更多客户端的加入而成比例增长.
  • 高频实时(例如,实时游戏):不建议在这种情况下使用背板.

我的项目需要高频实时(例如,实时游戏).

我还需要实时视频聊天

我的情景:

我有一个主服务器和多个从服务器,客户端连接到从服务器和ans从服务器连接到主服务器.

示例:服务器Slave-1和服务器Slave-2连接到主服务器,客户端A和客户端B连接到Slave-1,客户端C和客户端D连接到Slave-2,

客户端-A发送消息或数据或与客户端-D进行实时聊天

我如何实现这种情况?

[更新-1]

如果我没有使用signalR来解决这个问题,那么我应该使用什么?

[更新-2]

在我的场景中,主服务器就像一个路由器,而奴隶服务器就像一个交换机.连接到交换机和交换机的客户端连接到路由器.如果客户端-A发送数据包到客户端C,数据包应该发送到路由器和路由器处理数据包.超过2000个可能数量的从服务器和每个服务器的用户数量它超过10,000.

谢谢.

.net c# asp.net real-time signalr

21
推荐指数
1
解决办法
1万
查看次数

如何在ASP.NET MVC视图中对数据进行分组?

在Crystal Reports等报表工具中,有一些方法可以获取非规范化数据并将其按数据中的特定列分组,从而为指定列中的每个唯一项创建行标题.

如果我有这个:

Category1    Data1
Category1    Data2
Category1    Data3
Category2    Data4
Category2    Data5
Category2    Data6
Run Code Online (Sandbox Code Playgroud)

报告软件会将其分组如下:

Category1
      Data1
      Data2
      Date3
Category2
      Data4
      Data5
      Data6
Run Code Online (Sandbox Code Playgroud)

有没有办法在ASP.NET MVC视图中执行此操作,可能使用简单的linq短语或linq扩展方法与foreach或嵌套的foreach?

c# linq asp.net-mvc reporting linq-to-sql

20
推荐指数
1
解决办法
3万
查看次数

如何使用SSL使用CodeIgniter加载特定页面?

如何使用SSL使用CodeIgniter加载特定页面?我有一个apache2/mode_ssl服务器.mod_ssl使用与非安全页面不同的文档根.例如,https(端口443)将提供页面/var/www/ssl_html/和http(端口80)服务页面/var/www/html/.如何让CodeIgniter在这个设置中发挥出色?

php apache ssl https codeigniter

20
推荐指数
3
解决办法
4万
查看次数

如何实例化不可变的相互递归对象?

我有一个不可变的递归类型:

public sealed class Foo
{
    private readonly object something;
    private readonly Foo other; // might be null

    public Foo(object something, Foo other)
    {
        this.something = something;
        this.other = other;
    }
    public object Something { get { return something; } }
    public Foo Other { get { return other; } }
}
Run Code Online (Sandbox Code Playgroud)

我需要实例化这种相互引用的两个对象,即a.Other == b && b.Other == a.

我不想放弃不变性不变量,因为Foo它旨在用作flyweight.我可以(并且我认为必须)放弃readonly这些字段,并保持"胆量"可变,但公共接口必须是不可变的.

是冰棍不变性来完成这件事的唯一途径?

我正在尝试为一系列类型建模.每种类型都有一个名称和几个属性.每个属性都有一个名称和一个类型.有一些相互递归的类型,这就是出现这个问题的地方.

c# immutability

20
推荐指数
2
解决办法
1630
查看次数

LINQ扩展方法的顺序不影响性能?

我很惊讶,无论我是在前置还是附加LINQ扩展方法都没关系.

经测试Enumerable.FirstOrDefault:

  1. hugeList.Where(x => x.Text.Contains("10000")).FirstOrDefault();
  2. hugeList.FirstOrDefault(x => x.Text.Contains("10000"));

    var hugeList = Enumerable.Range(1, 50000000)
        .Select(i => new { ID = i, Text = "Item" + i });
    
    var sw1 = new System.Diagnostics.Stopwatch();
    var sw2 = new System.Diagnostics.Stopwatch();
    
    sw1.Start();
    for(int i=0;i<1000;i++)
        hugeList.Where(x => x.Text.Contains("10000")).FirstOrDefault();
    sw1.Stop();
    
    sw2.Start();
    for(int i=0;i<1000;i++)
        hugeList.FirstOrDefault(x => x.Text.Contains("10000"));
    sw2.Stop();
    
    var result1 = String.Format("FirstOrDefault after: {0} FirstOrDefault before: {1}", sw1.Elapsed,  sw2.Elapsed);
    //result1: FirstOrDefault after: 00:00:03.3169683 FirstOrDefault before: 00:00:03.0463219
    
    sw2.Restart();
    for (int i = 0; i < 1000; i++) …
    Run Code Online (Sandbox Code Playgroud)

.net c# linq

20
推荐指数
2
解决办法
2368
查看次数

Timedelta乘以python中的float

我有两个日期,可以照常计算timedelta.

但是我想用结果timedelta计算一些百分比:

full_time = (100/percentage) * timdelta
Run Code Online (Sandbox Code Playgroud)

但它似乎只能与互联网相乘.

我如何使用float而不是int乘数?

例:

percentage     = 43.27
passed_time    = fromtimestamp(fileinfo.st_mtime) - fromtimestamp(fileinfo.st_ctime)
multiplier     = 100 / percentage   # 2.3110700254217702796394730760342
full_time      = multiplier * passed_time # BUG: here comes exception
estimated_time = full_time - passed_time
Run Code Online (Sandbox Code Playgroud)

如果使用int(multiplier)- 准确性受损.

python datetime multiplying timedelta

20
推荐指数
1
解决办法
7627
查看次数

什么是"索引超出范围"异常,我该如何解决?

我收到以下错误之一:

  • "指数超出范围.必须是非负数且小于集合的大小"
  • "插入指数超出范围.必须是非负的且小于或等于大小."
  • "指数数组的边界之外."

它是什么意思,我该如何解决?

另请参见
IndexOutOfRangeException
ArgumentOutOfRangeException

.net c# indexoutofrangeexception

20
推荐指数
1
解决办法
16万
查看次数

如何在Javascript中保存zip文件的二进制数据?

我收到了来自AJAX respose的响应:

这是zip文件的响应.请告诉我如何在Javascript中保存这个filename.zip.在ZIP中有PDF文件.

我的代码是这样的:

$.ajax({

    url: baseURLDownload + "/service/report-builder/generateReportContentPDF",
    beforeSend: function (xhr) {
        xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
        xhr.responseType = 'arraybuffer'
    },
    type: "POST",
    data: JSON.stringify(parameter),
    contentType: "application/json",
    success: function(result) {
        console.log("ssss->"+result);
        var base64String = utf8_to_b64(result);
        //window.open("data:application/zip;base64,"+base64String); // It will download pdf in zip
        var zip = new JSZip();
        zip.add("PDFReport.pdf", result);
        content = zip.generate();
        location.href="data:application/zip;base64," + content;
        $.mobile.loading('hide');

    },
    error: function(xhr){
        console.log("Request Status: " + xhr.status + " Status Text: " + xhr.statusText + " " + xhr.responseText);
        $.mobile.loading('hide');
        showAlert("Error occured. Unable to …
Run Code Online (Sandbox Code Playgroud)

javascript binary zip

20
推荐指数
3
解决办法
3万
查看次数

iif函数是否计算SSRS中的两个路径或者它是否已短路?

我试图根据产品的销售额来评估每公斤价格($/Kg).如果产品在指定期间内实际销售,则此方法可以正常工作.但是,如果产品未售出,则Kg(分母)最终为0(零)并产生错误. - 除以零错误.

我试过这个

=iif(KgSold=0,0,Revenue/KgSold)
Run Code Online (Sandbox Code Playgroud)

似乎该iif函数正在计算真假结果.我该如何解决这个问题.

我应该使用该switch功能吗?

=switch(KgSold=0,0
        KgSold<>0,Revenue/KgSold)
Run Code Online (Sandbox Code Playgroud)

iif-function reportingservices-2005 reporting-services

19
推荐指数
2
解决办法
3988
查看次数

为了向后兼容"C模板",C++中是否存在typename关键字?

我正在学习C++课程,而我的老师在传递中提到typename关键字存在于C++中(而不是class在模板声明中使用关键字),以便向后兼容"C模板".

这引起了我的注意.我从来没有见过或听说过C++的模板之类的东西(除了,也许是预处理器......而且根本不是同一个东西)在ANSI C中.所以,我是否错过了某个地方的巨大东西,或者这是一个非常深奥的东西延伸gcc或者什么,或者我的老师离开基地?

c c++ standards templates

19
推荐指数
3
解决办法
1万
查看次数