{ "id": "167878", "key": "DAEMON-88", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "12519", "key": "DAEMON", "name": "Appcelerator Daemon" }, "fixVersions": [ { "id": "18407", "description": "", "name": "Appc Daemon 1.0.0", "archived": false, "released": true, "releaseDate": "2017-12-05" } ], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2017-12-01T18:26:25.000+0000", "created": "2017-05-23T20:32:02.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2017-12-01T18:26:25.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "15050", "name": "appcd-core", "description": "Core daemon logic: config, plugin loader, logging, dispatcher" } ], "description": "Currently there is no mechanism to detect if the Websocket client is borked. This can be accomplished using a ping/pong heartbeat.\r\n\r\nClients opt-in by setting the {{x-heartbeat}} HTTP header. When set, the {{WebsocketSession}} will send a {{\"ping\"}} event every 30 seconds to the client. The client has 5 seconds to respond with a {{\"pong\"}}, otherwise the connection is closed by the server.", "attachment": [], "flagged": false, "summary": "appcd-core: Add heartbeat to WebsocketSession", "creator": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "environment": null, "closedSprints": [ { "id": 976, "state": "closed", "name": "2017 Sprint 24 Tooling", "startDate": "2017-11-19T19:00:51.738Z", "endDate": "2017-12-03T19:00:00.000Z", "completeDate": "2017-12-04T23:20:34.438Z", "originBoardId": 219 } ], "comment": { "comments": [ { "id": "431602", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "We can't think of a good reason to implement this.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2017-12-01T18:26:25.000+0000", "updated": "2017-12-01T18:26:25.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }