summaryrefslogtreecommitdiffstats
path: root/webchat/proto_spec
blob: fffce1654d7b13d37cdd4f052c03a90800a30d15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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