-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebsocket.html
174 lines (151 loc) · 9.62 KB
/
websocket.html
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Websockets documentation — Tdproto docs documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="shortcut icon" href="_static/favicon.svg"/>
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Client events" href="events.html" />
<link rel="prev" title="Miscellaneous paths" href="misc_paths.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
Tdproto docs
<img src="_static/logo.svg" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="basics.html">Basics</a></li>
<li class="toctree-l1"><a class="reference internal" href="bot_howto.html">How to create bot</a></li>
<li class="toctree-l1"><a class="reference internal" href="team_paths.html">Team related paths</a></li>
<li class="toctree-l1"><a class="reference internal" href="chat_paths.html">Chat related paths</a></li>
<li class="toctree-l1"><a class="reference internal" href="task_paths.html">Task related paths</a></li>
<li class="toctree-l1"><a class="reference internal" href="group_paths.html">Group related paths</a></li>
<li class="toctree-l1"><a class="reference internal" href="misc_paths.html">Miscellaneous paths</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Websockets documentation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#connecting-to-websocket">Connecting to websocket</a></li>
<li class="toctree-l2"><a class="reference internal" href="#event-json-objects">Event JSON objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="#list-of-events">List of events</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="events.html">Client events</a></li>
<li class="toctree-l1"><a class="reference internal" href="events.html#server-events">Server events</a></li>
<li class="toctree-l1"><a class="reference internal" href="data_index.html">Enums index</a></li>
<li class="toctree-l1"><a class="reference internal" href="data_index.html#type-aliases">Type aliases</a></li>
<li class="toctree-l1"><a class="reference internal" href="data_index.html#json-objects-index">JSON objects index</a></li>
<li class="toctree-l1"><a class="reference internal" href="data_index.html#http-queries">HTTP Queries</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Tdproto docs</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Websockets documentation</li>
<li class="wy-breadcrumbs-aside">
<a style="color:red;font-size:36px;" href="https://tada-team.github.io/tdproto-docs-ru/websocket">🇷🇺</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="websockets-documentation">
<h1>Websockets documentation<a class="headerlink" href="#websockets-documentation" title="Permalink to this heading"></a></h1>
<p>Websocket is a full-duplex communication protocol.
See <a class="reference external" href="https://en.wikipedia.org/wiki/WebSocket">Wikipedia page</a>
for more information about Websockets.</p>
<p>In tada.team websockets are used to notify clients about events
and voice calls.</p>
<section id="connecting-to-websocket">
<h2>Connecting to websocket<a class="headerlink" href="#connecting-to-websocket" title="Permalink to this heading"></a></h2>
<p>The URL to connect to websocket has the form of <code class="docutils literal notranslate"><span class="pre">wss://web.tada.team/messaging/{team_id}</span></code>
where team_id is the team JID to create websocket for. This means each team
has to have a separated websocket connection if you want to receive events from
multiple teams.</p>
<p><code class="docutils literal notranslate"><span class="pre">web.tada.team</span></code> can be substituted for custom domain.</p>
<p>Connecting to websocket requires authentication. To authenticate you must
include the HTTP header <code class="docutils literal notranslate"><span class="pre">token</span></code> with your bot token in the connection handshake.
See <a class="reference internal" href="bot_howto.html"><span class="doc">How to create bot</span></a> on how to acquire bot token.</p>
</section>
<section id="event-json-objects">
<h2>Event JSON objects<a class="headerlink" href="#event-json-objects" title="Permalink to this heading"></a></h2>
<p>All events sent to or from server should be wrapped in an event object.</p>
<p>Event object has following fields:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">event</span></code> (string) - Name of event. For example, <code class="docutils literal notranslate"><span class="pre">"client.activity"</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">confirm_id</span></code> (string) - Mostly used for debugging. Should be set to any random string.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">params</span></code> (object) - The actual event object.</p></li>
</ul>
<p>Example:</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
<span class="w"> </span><span class="nt">"confirm_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"75a406625c58"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"event"</span><span class="p">:</span><span class="w"> </span><span class="s2">"client.activity"</span><span class="p">,</span>
<span class="w"> </span><span class="nt">"params"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nt">"afk"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
<p>This is a <a class="reference internal" href="events.html#client-activity"><span class="std std-ref">client.activity</span></a> event sent by client to indicate that user is AFK.</p>
</section>
<section id="list-of-events">
<h2>List of events<a class="headerlink" href="#list-of-events" title="Permalink to this heading"></a></h2>
<p><a class="reference internal" href="events.html#client-events"><span class="std std-ref">Client events</span></a>. These events the clients can send to server.</p>
<p><a class="reference internal" href="events.html#server-events"><span class="std std-ref">Server events</span></a>. These events server sends to clients.</p>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="misc_paths.html" class="btn btn-neutral float-left" title="Miscellaneous paths" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="events.html" class="btn btn-neutral float-right" title="Client events" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<li><a href="https://github.com/tada-team/tdproto-sphinx/">Project Homepage</a> »</li>
<p>© Copyright .</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>