diff options
author | lassulus <lassulus@googlemail.com> | 2013-11-12 02:01:29 +0100 |
---|---|---|
committer | lassulus <lassulus@googlemail.com> | 2013-11-12 02:01:29 +0100 |
commit | 3531d46cc3644a64b990f904e40e4846b8242a07 (patch) | |
tree | a0289317e14a8011d7a6615010b70e5d21eff02c /webchat/proto_spec | |
parent | c6a7cd9027150fca42500b3bbc78be01993856f6 (diff) |
webchat: refactor to rpc
Diffstat (limited to 'webchat/proto_spec')
-rw-r--r-- | webchat/proto_spec | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/webchat/proto_spec b/webchat/proto_spec new file mode 100644 index 00000000..fffce165 --- /dev/null +++ b/webchat/proto_spec @@ -0,0 +1,62 @@ +server -> client: +#old +type: 'message' | 'join' | 'quit' | 'nicklist' | 'nickchange' | 'usererror' +nick: the clients nickname ('message','nickchange') +newnick: new nick after nickchange ('nickchange') +from: the clients ip ('message','quit','join') +message: the data send ('message', 'nicklist','usererror' + + +#new +type: 'irc_msg' | 'irc_join' | 'irc_quit' | 'irc_nickchange' | 'irc_client_connect' | 'irc_client_disconnect' | 'web_welcome' |'web_msg' | 'web_join' | 'web_quit' | 'web_nickchange' | 'usererror' +params:{ nick:, oldnick:, nicklist:, msg:, errormsg: } + +'irc_msg': nick, msg +'irc_join': nick +'irc_quit': nick +'irc_nickchange': oldnick, nick +'kweb_irc_connect': nicklist +'kweb_irc_disconnect': -- +'web_welcome': msg, nicklist, nick +'web_msg': nick, msg +'web_join': nick +'web_quit': nick +'web_nickchange': oldnick, nick +'usererror': msg + + +client -> server +#old +method: 'say', 'nick' +params:{ msg:, nick: } + +'say': msg +'nick': nick + + +##############JSON RPC################ +server->client: +{method: 'say', params: {msg: msg}, id: id} +-> {result: {ok: ok}, error {error muted?}, id: id} + +{method: 'nick', params: {nick: nick}, id: id} +-> {result: {nick: nick}, error: {error name taken?/reserved/not allowed}, id: id} + + +client->server: +broadcast: + {method: 'irc_msg', params: {nick: nick, msg: msg}, id: 0} #notification + {method: 'irc_join', params: {nick: nick}, id: 0} #notification + {method: 'irc_quit', params: {nick: nick}, id: 0} #notification + {method: 'irc_nickchange', params: {nick: nick, oldnick: oldnick}, id: 0} #notification + {method: 'kweb_irc_connect', params: {nicklist: nicklist}, id: 0} #notification + {method: 'kweb_irc_disconnect', params: {}, id: 0} #notification + {method: 'web_msg', params: {nick: nick, msg: msg}, id: 0} #notification + {method: 'web_join', params: {nick: nick}, id: 0} #notification + {method: 'web_quit', params: {nick: nick}, id: 0} #notification + {method: 'web_nickchange', params: {nick: nick, oldnick: oldnick}, id: 0} #notification + +unicast: + {method: 'coi', params: {}, id: id} + -> {result: {result: {nick: nick, addr: addr}, error: {connection error?}, id: id} + {method: 'usererror', params: {msg: 'error type'}, id: 0} #notification |