Chrome Dev Tools Protocol - Chrome kills websocket after 30 sec of inactivity
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I am connecting to Chrome Dev Tools from my C#/.NET app via Chrome Dev Tools protocol running on WebSocket. I discovered that if no message in sent/received for 30 sec, chrome kills the connection and I get this WebSocketException :
System.Net.WebSockets.WebSocketException:
The remote party closed the WebSocket connection without completing the close handshake.
Is there some way to dont let Chrome kill the connection ? Some elegant way to do keep-alive without manually sending blank messages every x seconds ?
I am using standard WebSocket from System.Net.WebSockets and connect like this:
var socket = new ClientWebSocket();
socket.ConnectAsync(new Uri(target.webSocketDebuggerUrl),CancellationToken.None).Wait();
Thanks
c# google-chrome google-chrome-devtools
add a comment |
I am connecting to Chrome Dev Tools from my C#/.NET app via Chrome Dev Tools protocol running on WebSocket. I discovered that if no message in sent/received for 30 sec, chrome kills the connection and I get this WebSocketException :
System.Net.WebSockets.WebSocketException:
The remote party closed the WebSocket connection without completing the close handshake.
Is there some way to dont let Chrome kill the connection ? Some elegant way to do keep-alive without manually sending blank messages every x seconds ?
I am using standard WebSocket from System.Net.WebSockets and connect like this:
var socket = new ClientWebSocket();
socket.ConnectAsync(new Uri(target.webSocketDebuggerUrl),CancellationToken.None).Wait();
Thanks
c# google-chrome google-chrome-devtools
Have you tried whatever socket/multiplexing/websocket framework you use send the PING message every 30 seconds? You show no relevant code / Minimal, Complete, and Verifiable example so it's hard to suggest how you can best incorporate that into your code.
– Corion
Nov 22 '18 at 12:22
@Corion edited post with more info
– molnarriso
Nov 22 '18 at 13:11
add a comment |
I am connecting to Chrome Dev Tools from my C#/.NET app via Chrome Dev Tools protocol running on WebSocket. I discovered that if no message in sent/received for 30 sec, chrome kills the connection and I get this WebSocketException :
System.Net.WebSockets.WebSocketException:
The remote party closed the WebSocket connection without completing the close handshake.
Is there some way to dont let Chrome kill the connection ? Some elegant way to do keep-alive without manually sending blank messages every x seconds ?
I am using standard WebSocket from System.Net.WebSockets and connect like this:
var socket = new ClientWebSocket();
socket.ConnectAsync(new Uri(target.webSocketDebuggerUrl),CancellationToken.None).Wait();
Thanks
c# google-chrome google-chrome-devtools
I am connecting to Chrome Dev Tools from my C#/.NET app via Chrome Dev Tools protocol running on WebSocket. I discovered that if no message in sent/received for 30 sec, chrome kills the connection and I get this WebSocketException :
System.Net.WebSockets.WebSocketException:
The remote party closed the WebSocket connection without completing the close handshake.
Is there some way to dont let Chrome kill the connection ? Some elegant way to do keep-alive without manually sending blank messages every x seconds ?
I am using standard WebSocket from System.Net.WebSockets and connect like this:
var socket = new ClientWebSocket();
socket.ConnectAsync(new Uri(target.webSocketDebuggerUrl),CancellationToken.None).Wait();
Thanks
c# google-chrome google-chrome-devtools
c# google-chrome google-chrome-devtools
edited Nov 22 '18 at 13:38
molnarriso
asked Nov 22 '18 at 11:48
molnarrisomolnarriso
164
164
Have you tried whatever socket/multiplexing/websocket framework you use send the PING message every 30 seconds? You show no relevant code / Minimal, Complete, and Verifiable example so it's hard to suggest how you can best incorporate that into your code.
– Corion
Nov 22 '18 at 12:22
@Corion edited post with more info
– molnarriso
Nov 22 '18 at 13:11
add a comment |
Have you tried whatever socket/multiplexing/websocket framework you use send the PING message every 30 seconds? You show no relevant code / Minimal, Complete, and Verifiable example so it's hard to suggest how you can best incorporate that into your code.
– Corion
Nov 22 '18 at 12:22
@Corion edited post with more info
– molnarriso
Nov 22 '18 at 13:11
Have you tried whatever socket/multiplexing/websocket framework you use send the PING message every 30 seconds? You show no relevant code / Minimal, Complete, and Verifiable example so it's hard to suggest how you can best incorporate that into your code.
– Corion
Nov 22 '18 at 12:22
Have you tried whatever socket/multiplexing/websocket framework you use send the PING message every 30 seconds? You show no relevant code / Minimal, Complete, and Verifiable example so it's hard to suggest how you can best incorporate that into your code.
– Corion
Nov 22 '18 at 12:22
@Corion edited post with more info
– molnarriso
Nov 22 '18 at 13:11
@Corion edited post with more info
– molnarriso
Nov 22 '18 at 13:11
add a comment |
1 Answer
1
active
oldest
votes
The standard .NET ClientWebSocket doesnt support manual pinging. However, it can be set via this property:
ClientWebSocket.ClientWebSocketOptions.KeepAliveInterval
The default value is 30 seconds, which is the same time after which the socket was getting closed. Setting this to some really high value made the problem dissapear. Unfortunately I am still not sure about the details of this problem and how does keep-alive work in .NET .
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53430355%2fchrome-dev-tools-protocol-chrome-kills-websocket-after-30-sec-of-inactivity%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The standard .NET ClientWebSocket doesnt support manual pinging. However, it can be set via this property:
ClientWebSocket.ClientWebSocketOptions.KeepAliveInterval
The default value is 30 seconds, which is the same time after which the socket was getting closed. Setting this to some really high value made the problem dissapear. Unfortunately I am still not sure about the details of this problem and how does keep-alive work in .NET .
add a comment |
The standard .NET ClientWebSocket doesnt support manual pinging. However, it can be set via this property:
ClientWebSocket.ClientWebSocketOptions.KeepAliveInterval
The default value is 30 seconds, which is the same time after which the socket was getting closed. Setting this to some really high value made the problem dissapear. Unfortunately I am still not sure about the details of this problem and how does keep-alive work in .NET .
add a comment |
The standard .NET ClientWebSocket doesnt support manual pinging. However, it can be set via this property:
ClientWebSocket.ClientWebSocketOptions.KeepAliveInterval
The default value is 30 seconds, which is the same time after which the socket was getting closed. Setting this to some really high value made the problem dissapear. Unfortunately I am still not sure about the details of this problem and how does keep-alive work in .NET .
The standard .NET ClientWebSocket doesnt support manual pinging. However, it can be set via this property:
ClientWebSocket.ClientWebSocketOptions.KeepAliveInterval
The default value is 30 seconds, which is the same time after which the socket was getting closed. Setting this to some really high value made the problem dissapear. Unfortunately I am still not sure about the details of this problem and how does keep-alive work in .NET .
answered Nov 22 '18 at 13:33
molnarrisomolnarriso
164
164
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53430355%2fchrome-dev-tools-protocol-chrome-kills-websocket-after-30-sec-of-inactivity%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have you tried whatever socket/multiplexing/websocket framework you use send the PING message every 30 seconds? You show no relevant code / Minimal, Complete, and Verifiable example so it's hard to suggest how you can best incorporate that into your code.
– Corion
Nov 22 '18 at 12:22
@Corion edited post with more info
– molnarriso
Nov 22 '18 at 13:11