SignalR IE11 forewerFrame内存泄漏
SignalR IE11 forewerFrame memory leak
我在 IIS 中托管了简单的 SignalR 应用程序。当来自 Win 服务器 2012R2 的 IIS 为 8 时,IE11 通过 WebSocket 连接并且一切正常。但是,当我在 IIS 7.5 或 IIsExpress 8 上托管时,IE11 已连接 vie forewerFrame,10 分钟后 IE 消耗的内存增加了一倍。
这是我的代码
SignalR 配置
public static void Configuration(IAppBuilder app)
{
app.MapSignalR(new HubConfiguration
{
EnableDetailedErrors = true,
EnableJavaScriptProxies = true
});
}
枢纽
[HubName("testHub")]
public class TestHub : Hub
{
[HubMethodName("update")]
public void Update()
{
Clients.All.update(new TestData
{
Name = "Test1",
Date = DateTime.Now,
Value1 = 100,
Value2 = 200,
Value3 = 300,
Value4 = 400,
Value5 = 500,
Value6 = 600,
Value7 = 700,
Value8 = 800,
Value9 = 900,
});
}
}
public class TestData
{
public string Name { get; set; }
public DateTime Date { get; set; }
public int Value1 { get; set; }
public int Value2 { get; set; }
public int Value3 { get; set; }
public int Value4 { get; set; }
public int Value5 { get; set; }
public int Value6 { get; set; }
public int Value7 { get; set; }
public int Value8 { get; set; }
public int Value9 { get; set; }
}
查看
<h3>Homepage</h3>
@section scripts
{
@Scripts.Render("~/bundles/signalR")
<script type="text/javascript" src="@Url.Content("~/signalr/hubs")"></script>
<script>
$(function () {
$.connection.testHub.on('update', function (item) { update(item); });
$.connection.hub.start().done(function() {
setInterval(function() { $.connection.testHub.server.update(); }, 100);
});
});
var count = 0;
function update(item) {
count++;
$('#count').val(count);
}
</script>
}
<span> count:<input type="text" id="count" value="0" /></span>
有人知道哪里出了问题吗?我更新了所有的nugets。 jQuery2.1.3,SignalR 2.2.0
谢谢
这是 IE 中 Forever Frame 的一个已知问题:https://github.com/SignalR/SignalR/issues/809
尝试强制长轮询。
相应地更改您的代码:
$.connection.hub.start({ transport: 'longPolling' }).done(function() {
setInterval(function() { $.connection.testHub.server.update(); }, 100);
});
我在 IIS 中托管了简单的 SignalR 应用程序。当来自 Win 服务器 2012R2 的 IIS 为 8 时,IE11 通过 WebSocket 连接并且一切正常。但是,当我在 IIS 7.5 或 IIsExpress 8 上托管时,IE11 已连接 vie forewerFrame,10 分钟后 IE 消耗的内存增加了一倍。
这是我的代码 SignalR 配置
public static void Configuration(IAppBuilder app)
{
app.MapSignalR(new HubConfiguration
{
EnableDetailedErrors = true,
EnableJavaScriptProxies = true
});
}
枢纽
[HubName("testHub")]
public class TestHub : Hub
{
[HubMethodName("update")]
public void Update()
{
Clients.All.update(new TestData
{
Name = "Test1",
Date = DateTime.Now,
Value1 = 100,
Value2 = 200,
Value3 = 300,
Value4 = 400,
Value5 = 500,
Value6 = 600,
Value7 = 700,
Value8 = 800,
Value9 = 900,
});
}
}
public class TestData
{
public string Name { get; set; }
public DateTime Date { get; set; }
public int Value1 { get; set; }
public int Value2 { get; set; }
public int Value3 { get; set; }
public int Value4 { get; set; }
public int Value5 { get; set; }
public int Value6 { get; set; }
public int Value7 { get; set; }
public int Value8 { get; set; }
public int Value9 { get; set; }
}
查看
<h3>Homepage</h3>
@section scripts
{
@Scripts.Render("~/bundles/signalR")
<script type="text/javascript" src="@Url.Content("~/signalr/hubs")"></script>
<script>
$(function () {
$.connection.testHub.on('update', function (item) { update(item); });
$.connection.hub.start().done(function() {
setInterval(function() { $.connection.testHub.server.update(); }, 100);
});
});
var count = 0;
function update(item) {
count++;
$('#count').val(count);
}
</script>
}
<span> count:<input type="text" id="count" value="0" /></span>
有人知道哪里出了问题吗?我更新了所有的nugets。 jQuery2.1.3,SignalR 2.2.0
谢谢
这是 IE 中 Forever Frame 的一个已知问题:https://github.com/SignalR/SignalR/issues/809
尝试强制长轮询。
相应地更改您的代码:
$.connection.hub.start({ transport: 'longPolling' }).done(function() {
setInterval(function() { $.connection.testHub.server.update(); }, 100);
});