我正在尝试实施asp.net核心的websocket,并且发现我无法让服务器ping客户端以确定任何时间间隔的活动状态。浏览器从不注册任何ping帧。
出于测试目的,我基本上复制了Microsoft的代码,所以我的代码就像在这个演示中一样: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/websockets?view=aspnetcore-2.0 这基本上意味着websocket的配置是:
var webSocketOptions = new WebSocketOptions()
{
KeepAliveInterval = TimeSpan.FromSeconds(1),
ReceiveBufferSize = 4 * 1024
};
app.UseWebSockets(webSocketOptions);
我尝试在IIS Express和本地IIS上进行部署。到目前为止,其他一切工作正常,所有数据帧都能很好地注册。为了监控我正在使用chrome的开发工具。
使用的版本 - AspNetCore.All(2.0.7) - > WebSockets(2.0.2)
我在这里做错了还是打破了api?
答案 0 :(得分:1)
这里有一些学问:
要操作ping间隔,必须在IIS设置中执行此操作:
<system.webServer>
<webSocket
enabled="true"
receiveBufferLimit="4194304"
pingInterval="00:01:00">
</webSocket>
</system.webServer>
参考文献: