{"action":"created","issue":{"url":"https://api.github.com/repos/ratpack/ratpack/issues/835","labels_url":"https://api.github.com/repos/ratpack/ratpack/issues/835/labels{/name}","comments_url":"https://api.github.com/repos/ratpack/ratpack/issues/835/comments","events_url":"https://api.github.com/repos/ratpack/ratpack/issues/835/events","html_url":"https://github.com/ratpack/ratpack/issues/835","id":115633199,"number":835,"title":"Action when done in websocket send method.","user":{"login":"achmadns","id":8838461,"avatar_url":"https://avatars.githubusercontent.com/u/8838461?v=3","gravatar_id":"","url":"https://api.github.com/users/achmadns","html_url":"https://github.com/achmadns","followers_url":"https://api.github.com/users/achmadns/followers","following_url":"https://api.github.com/users/achmadns/following{/other_user}","gists_url":"https://api.github.com/users/achmadns/gists{/gist_id}","starred_url":"https://api.github.com/users/achmadns/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/achmadns/subscriptions","organizations_url":"https://api.github.com/users/achmadns/orgs","repos_url":"https://api.github.com/users/achmadns/repos","events_url":"https://api.github.com/users/achmadns/events{/privacy}","received_events_url":"https://api.github.com/users/achmadns/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-11-07T04:43:00Z","updated_at":"2015-11-07T08:42:23Z","closed_at":null,"body":"@alkemist I did your suggestion in [this commit](https://github.com/achmadns/ratpack/commit/17425a9b50208448860c9539e06afd6bdbebd3f6) by adding new methods. It would be great like that instead of copy/clone and patch.\r\n\r\nThank you."},"comment":{"url":"https://api.github.com/repos/ratpack/ratpack/issues/comments/154658446","html_url":"https://github.com/ratpack/ratpack/issues/835#issuecomment-154658446","issue_url":"https://api.github.com/repos/ratpack/ratpack/issues/835","id":154658446,"user":{"login":"alkemist","id":17825,"avatar_url":"https://avatars.githubusercontent.com/u/17825?v=3","gravatar_id":"","url":"https://api.github.com/users/alkemist","html_url":"https://github.com/alkemist","followers_url":"https://api.github.com/users/alkemist/followers","following_url":"https://api.github.com/users/alkemist/following{/other_user}","gists_url":"https://api.github.com/users/alkemist/gists{/gist_id}","starred_url":"https://api.github.com/users/alkemist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alkemist/subscriptions","organizations_url":"https://api.github.com/users/alkemist/orgs","repos_url":"https://api.github.com/users/alkemist/repos","events_url":"https://api.github.com/users/alkemist/events{/privacy}","received_events_url":"https://api.github.com/users/alkemist/received_events","type":"User","site_admin":false},"created_at":"2015-11-07T08:42:23Z","updated_at":"2015-11-07T08:42:23Z","body":"@achmadns it would be:\r\n\r\n```\r\npublic Operation sendOp(ByteBuf text) {\r\n    return Promise.<Void>of(u ->\r\n      channel.writeAndFlush(new TextWebSocketFrame(text)).addListener(new ChannelFutureListener() {\r\n        @Override\r\n        public void operationComplete(ChannelFuture future) throws Exception {\r\n          Throwable error = future.cause();\r\n          if (error == null) {\r\n            u.success(null);\r\n          } else {\r\n            u.error(error);\r\n          }\r\n        }\r\n      })\r\n    ).operation();\r\n  }\r\n```"}}