{"action":"created","issue":{"url":"https://api.github.com/repos/pocoproject/poco/issues/1212","repository_url":"https://api.github.com/repos/pocoproject/poco","labels_url":"https://api.github.com/repos/pocoproject/poco/issues/1212/labels{/name}","comments_url":"https://api.github.com/repos/pocoproject/poco/issues/1212/comments","events_url":"https://api.github.com/repos/pocoproject/poco/issues/1212/events","html_url":"https://github.com/pocoproject/poco/issues/1212","id":142951151,"number":1212,"title":"Lost WebSocket Frames after Client Websocket Handshake is complete","user":{"login":"dereszet","id":18030104,"avatar_url":"https://avatars3.githubusercontent.com/u/18030104?v=4","gravatar_id":"","url":"https://api.github.com/users/dereszet","html_url":"https://github.com/dereszet","followers_url":"https://api.github.com/users/dereszet/followers","following_url":"https://api.github.com/users/dereszet/following{/other_user}","gists_url":"https://api.github.com/users/dereszet/gists{/gist_id}","starred_url":"https://api.github.com/users/dereszet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dereszet/subscriptions","organizations_url":"https://api.github.com/users/dereszet/orgs","repos_url":"https://api.github.com/users/dereszet/repos","events_url":"https://api.github.com/users/dereszet/events{/privacy}","received_events_url":"https://api.github.com/users/dereszet/received_events","type":"User","site_admin":false},"labels":[{"id":17397359,"url":"https://api.github.com/repos/pocoproject/poco/labels/bug","name":"bug","color":"fc2929","default":true},{"id":42275424,"url":"https://api.github.com/repos/pocoproject/poco/labels/fixed","name":"fixed","color":"bfe5bf","default":false}],"state":"closed","locked":false,"assignee":{"login":"obiltschnig","id":201635,"avatar_url":"https://avatars0.githubusercontent.com/u/201635?v=4","gravatar_id":"","url":"https://api.github.com/users/obiltschnig","html_url":"https://github.com/obiltschnig","followers_url":"https://api.github.com/users/obiltschnig/followers","following_url":"https://api.github.com/users/obiltschnig/following{/other_user}","gists_url":"https://api.github.com/users/obiltschnig/gists{/gist_id}","starred_url":"https://api.github.com/users/obiltschnig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obiltschnig/subscriptions","organizations_url":"https://api.github.com/users/obiltschnig/orgs","repos_url":"https://api.github.com/users/obiltschnig/repos","events_url":"https://api.github.com/users/obiltschnig/events{/privacy}","received_events_url":"https://api.github.com/users/obiltschnig/received_events","type":"User","site_admin":false},"assignees":[{"login":"obiltschnig","id":201635,"avatar_url":"https://avatars0.githubusercontent.com/u/201635?v=4","gravatar_id":"","url":"https://api.github.com/users/obiltschnig","html_url":"https://github.com/obiltschnig","followers_url":"https://api.github.com/users/obiltschnig/followers","following_url":"https://api.github.com/users/obiltschnig/following{/other_user}","gists_url":"https://api.github.com/users/obiltschnig/gists{/gist_id}","starred_url":"https://api.github.com/users/obiltschnig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obiltschnig/subscriptions","organizations_url":"https://api.github.com/users/obiltschnig/orgs","repos_url":"https://api.github.com/users/obiltschnig/repos","events_url":"https://api.github.com/users/obiltschnig/events{/privacy}","received_events_url":"https://api.github.com/users/obiltschnig/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/pocoproject/poco/milestones/23","html_url":"https://github.com/pocoproject/poco/milestone/23","labels_url":"https://api.github.com/repos/pocoproject/poco/milestones/23/labels","id":2223121,"number":23,"title":"Release 1.7.8","description":"Maintenance release","creator":{"login":"obiltschnig","id":201635,"avatar_url":"https://avatars0.githubusercontent.com/u/201635?v=4","gravatar_id":"","url":"https://api.github.com/users/obiltschnig","html_url":"https://github.com/obiltschnig","followers_url":"https://api.github.com/users/obiltschnig/followers","following_url":"https://api.github.com/users/obiltschnig/following{/other_user}","gists_url":"https://api.github.com/users/obiltschnig/gists{/gist_id}","starred_url":"https://api.github.com/users/obiltschnig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obiltschnig/subscriptions","organizations_url":"https://api.github.com/users/obiltschnig/orgs","repos_url":"https://api.github.com/users/obiltschnig/repos","events_url":"https://api.github.com/users/obiltschnig/events{/privacy}","received_events_url":"https://api.github.com/users/obiltschnig/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":31,"state":"closed","created_at":"2017-01-02T11:03:00Z","updated_at":"2017-02-23T08:09:28Z","due_on":"2017-02-21T08:00:00Z","closed_at":"2017-02-21T14:49:25Z"},"comments":7,"created_at":"2016-03-23T12:49:31Z","updated_at":"2017-11-08T07:48:00Z","closed_at":"2017-02-20T17:17:13Z","author_association":"NONE","body":"WebSocket frames may get lost when a client side WebSocket establishes a connection and the server sends the first WebSocket frames immediately after sending the Opening Handshake.\nThe client side websocket reads and parses the HTTP response before detaching the socket from the HTTPClientSession to be passed to the WebSocket. If, at the time of reading the HTTP Response from the server, a WebSocket Frame has already been sent (and is available in the client side TCP buffer), the HTTPInputStream will receive data from the socket beyond the end of the HTTP response (due to a buffer size of 4096 bytes). This data will consequently not be available to the WebSocket once the WebSocket is established.\n\nThis bug requires every server to wait a short time before sending data after completing the WebSocket handshake.\n"},"comment":{"url":"https://api.github.com/repos/pocoproject/poco/issues/comments/342737009","html_url":"https://github.com/pocoproject/poco/issues/1212#issuecomment-342737009","issue_url":"https://api.github.com/repos/pocoproject/poco/issues/1212","id":342737009,"user":{"login":"obiltschnig","id":201635,"avatar_url":"https://avatars0.githubusercontent.com/u/201635?v=4","gravatar_id":"","url":"https://api.github.com/users/obiltschnig","html_url":"https://github.com/obiltschnig","followers_url":"https://api.github.com/users/obiltschnig/followers","following_url":"https://api.github.com/users/obiltschnig/following{/other_user}","gists_url":"https://api.github.com/users/obiltschnig/gists{/gist_id}","starred_url":"https://api.github.com/users/obiltschnig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obiltschnig/subscriptions","organizations_url":"https://api.github.com/users/obiltschnig/orgs","repos_url":"https://api.github.com/users/obiltschnig/repos","events_url":"https://api.github.com/users/obiltschnig/events{/privacy}","received_events_url":"https://api.github.com/users/obiltschnig/received_events","type":"User","site_admin":false},"created_at":"2017-11-08T07:48:00Z","updated_at":"2017-11-08T07:48:00Z","author_association":"OWNER","body":"You'll have to call both available() and poll(). E.g., call available() first and if it returns 0, call poll().\r\n\r\n```\r\nif (ws.available() || ws.poll(...)) ...\r\n```\r\n\r\nThere is no API available to determine whether a complete frame can be read without blocking."}}
{"actor":{"display_login":"obiltschnig"}}