Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ: 0.12.X ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: 26.08.24
ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ°ΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ websocket ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ: ws://localhost:4848/Chat
ΠΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: 4848, Π½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² MiniChat.
{
"Type": "EventType", // Π’ΠΈΠΏ ΡΠΎΠ±ΡΡΠΈΡ.
"Data": {Object} // ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
}
Unknown
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.Message
- ΠΠ±ΡΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.Live
- Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠ΅ (ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ°, ΠΏΠΎΠ΄Π°ΡΠΎΠΊ, ΡΠ΅ΠΉΠ΄, Ρ ΠΎΡΡ ΠΈ Ρ.Π΄.).DeleteMessage
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.UserBan
- ΠΠΎΡΡΠΎΡΠ½Π½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.UserMute
- ΠΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.SettingsTheme
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΌΡ.Await
- ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°Ρ Π½Π΅ ΠΏΠ΅ΡΠΌΠ°Π½Π΅Π½ΡΠ½ΡΠΉ.Connect
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠ°Π½Π°Π»Π΅.State
- ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ°. (Π ΠΎΠ»ΠΈ Π² ΡΠ°ΡΠ΅, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π°).Reconnect
- ΠΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°.Disconnect
- ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ΅ΡΠ²ΠΈΡΠ°.NotFound
- ΠΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.UnknownError
- ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°.Speak
- Π‘ΠΈΠ½ΡΠ΅Π· ΡΠ΅ΡΠΈ.Avatar
- ΠΠ²Π°ΡΠ°Ρ.
{
"Service": "Service", // Π‘Π΅ΡΠ²ΠΈΡ.
"GUID": "4da6dd37-158c-4c17-bf8c-2277d568417d", // ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
"Date": "1973-01-01T00:00:00.000+00:00", // ΠΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠ΅ΠΌΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ISO 8601 Extended.
"UserName": "MegaXa", // ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
"UserID": "0", // ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
"Color": "#323232", // Π¦Π²Π΅Ρ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
"Badges": [
{
"Text": "ΠΠΎΠ²ΡΠΉ ΡΠΏΠΎΠ½ΡΠΎΡ",
"Image": {
"Default": "https://megaxa.ru/badge.png", // Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅ΠΉΠ΄ΠΆΠΈΠΊΠ°.
"Large": "https://megaxa.ru/badge2X.png" // Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅ΠΉΠ΄ΠΆΠΈΠΊΠ°.
}
}
],
"MessageKit": [ // ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
{
"Type": "MessageKitType", // Π’ΠΈΠΏ ΡΠ°ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (Text, Emoticon, URL, Image, Sticker).
"Data": {
"Text": ":200IQ:", // Π’Π΅ΠΊΡΡ.
"URL": "https://megaxa.ru/", // Π‘ΡΡΠ»ΠΊΠ° (Image, URL, Sticker).
"Image": {
"Default": "https://megaxa.ru/emoticon.png",
"Large": "https://megaxa.ru/emoticon2X.png"
}
}
}
],
"Avatar": {
"Default": "https://megaxa.ru/avatar.png",
"Large": "https://megaxa.ru/avatar2X.png"
},
"Roles": [ // Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΎΠ»Π΅ΠΉ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
"Owner",
"Subscriber"
],
"Reply": false, // Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π²Π»Π°Π΄Π΅Π»ΡΡΡ ΠΊΠ°Π½Π°Π»Π°.
"Meta": { // ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
"Me": false, // Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Ρ ΡΠ΅Π³ΠΎΠΌ "/me" (Twitch).
"Login": "megaxa", // ΠΠΎΠ³ΠΈΠ½ Π°Π²ΡΠΎΡΠ°, Π΅ΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½.
"Highlighted": false, // ΠΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
"Announcement": false, // Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅-Π°Π½ΠΎΠ½Ρ (Twitch).
"FirstMessage": false // ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Π°Π²ΡΠΎΡΠ° (Twitch. VKPlay).
}
}
- Unknown - ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
- MiniChat
- Twitch
- YouTube
- GoodGame
- DonationAlerts
- VK
- DonatePay
- Nuum
- Steam
- OK
- Trovo
- Peka2
- DLive
- YouNow
- Tango
- Rutube
- Telegram
- Discord
- VKPlay
- Boosty
- QIWIDonate
- Donatty
- DonateStream
- Bigo
- Kick
- StreamEngine
Unknown
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.Text
- Π’Π΅ΠΊΡΡ.Emoticon
- Π‘ΠΌΠ°ΠΉΠ»ΠΈΠΊ.URL
- Π‘ΡΡΠ»ΠΊΠ°.Image
- ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.Sticker
- Π‘ΡΠΈΠΊΠ΅Ρ.
Follow
UnFollow
Subscription
GiftSubscription
Donation
Reward
Support
Host
Raid
Winner
Custom
ChannelPoints
- "ΠΠ°Π»Π»Ρ ΠΊΠ°Π½Π°Π»Π° (Twitch)".Mana
- "ΠΠ°Π½Π° (Trovo)".Lemon
- "ΠΠΈΠΌΠΎΠ½Ρ (DLive)".Bits
- "Bits (Twitch)".Elixir
- "ΠΠ»ΠΈΠΊΡΠΈΡ (Trovo)".Diamond
- "ΠΠ»ΠΌΠ°Π·Ρ (Bigo)".OK
- "OK (ΠΠ΄Π½ΠΎΠΊΠ»Π°ΡΡΠ½ΠΈΠΊΠΈ)".
{
"Type": "DeleteMessage",
"Data": {
"GUID": "00000000-0000-0000-0000-000000000000"
}
}
{
"Type": "WidgetProperties", // Π’ΠΈΠΏ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° (Chat, Widget, Plugin).
"Data": {
"Type": "Chat",
"FolderName": "Dev", // ΠΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠΌ.
"ID": 0 // ΠΠΎΠΌΠ΅Ρ ΠΏΡΠΎΡΠΈΠ»Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°.
}
}
{
"Type": "Message",
"Data": {
"Service": "Service",
"Message": "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ.",
"Hide": false // ΠΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² MiniChat.
}
}
{
"Type": "Message",
"Data": {
"Service": "MiniChat",
"UserName": "MegaXa",
"Message": "Π’Π΅ΡΡ."
}
}
{
"Type": "DeleteMessage",
"Data": {
"Service": "Service",
"GUID": "00000000-0000-0000-0000-000000000000"
}
}
{
"Type": "UserBan",
"Data": {
"Service": "Service",
"UserID": "00000000"
}
}
{
"Type": "UserMute",
"Data": {
"Service": "Service",
"UserID": "00000000",
"Duration": 10 // ΠΠ° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ°ΠΉΠΌ-Π°ΡΡ. ΠΡΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ, ΡΠΎ Π·Π°ΠΏΡΠΎΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ.
}
}
{
"Type": "UserUnban",
"Data": {
"Service": "Service",
"UserID": "00000000"
}
}
{
"Type": "Live",
"Data": {
"Type": "Custom",
"Service": "MiniChat",
"Title": "MegaXa", // ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΎΠ±ΡΡΠΈΡ.
"Message": "Π§ΡΠΎ-ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ».", // Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ.
"Data": { "Item": "" } // JSON ΠΎΠ±ΡΠ΅ΠΊΡ c ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
}
}
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ (UserName, Avatar, UserID, Login ΠΈ Ρ.ΠΏ.).
ΠΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°.
VoiceArray = [ 'Maxim', 'Tatyana', 'Alice', 'Marusia', 'Svetlana', 'Dmitry', 'Ermilov', 'Zahar', 'Jane', 'Alyss', 'Omazh', 'Oksana' ]
{
"Type": "Speak",
"Data": {
"GUID": "00000000-0000-0000-0000-000000000000", // ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΠ²Π΅ΡΠ° (ΠΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ).
"Message": "Π’Π΅ΡΡ ΠΎΠ·Π²ΡΡΠΊΠΈ", // Π’Π΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
"Voice": "ΠΠΎΠ»ΠΎΡ", // ΠΠΎΠ»ΠΎΡ.
"Pitch": "0" // Π’ΠΎΠ½ Π³ΠΎΠ»ΠΎΡΠ° (ΠΡΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ).
}
}
ΠΡΠΈΠΌΠ΅Ρ:
{"Type":"Speak","Data":{"Voice":"Alice","Message":"1% 2% 3% 4% 5% 6% 7% 8% 9% 10%"}}
{
"Type": "History",
"Data": {
"Type": "Live", // Π’ΠΈΠΏ ΠΈΡΡΠΎΡΠΈΠΈ (Live).
"Limit": 100, // ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
"Filter": {
"Follow": false // Π’ΠΈΠΏΡ ΡΠΎΠ±ΡΡΠΈΠΉ (Π§ΡΠΎ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΎ) (ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°Ρ Π²ΡΠ΅Ρ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΡΠΈΠΏΠΎΠ²).
}
}
}
ΠΡΠΈΠΌΠ΅Ρ:
{"Type":"History","Data":{"Type":"Live","Limit":10,"Filter": {"Follow": false,"UnFollow": false}}}
{
"Type": "Statistics",
"Data": {
"Type": "Live", // Π’ΠΈΠΏ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ (Live).
"LiveType": "Unknown", // ΠΡΠ»ΠΈ ΡΠΈΠΏ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ "Live", ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΡΠΎΠ±ΡΡΠΈΡ (ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎ ΡΡΠΌΠΌΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ).
"Query": [
{
"Operator": "Count",
"Expression": "UserName == @0",
"Variables": ["MegaXa"]
}
]
}
}
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: Where, Cast, GroupBy, Select, OrderBy, Reverse, Skip, Take, Count. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ ΡΠ°Π±ΠΎΡΡ Dynamic Linq ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ: Dynamic Linq
ΠΡΠΈΠΌΠ΅ΡΡ:
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠ½Π°ΡΠΎΠ² Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
{"Type":"Statistics","Data":{"Type":"Live","Query":[{"Operator":"Count","Expression":"x => x.Service == @0","Variables":["DonationAlerts"]}]}}
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΏ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΠΈΡ
Π·Π° Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ.
{"Type":"Statistics","Data":{"Type":"Live","LiveType":"Donation","Query":[{"Operator":"GroupBy","Expression":"UserName"},{"Operator":"Select","Expression":"new(Key as Name, Sum(Amount) as Amount)"},{"Operator":"OrderBy","Expression":"Amount"}]}}
ΠΡΠΈΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎΠΈΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°ΡΠ΄ΠΈΠΎ, Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· MiniChat. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ: None, Paused, Playing. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
{"Type":"Playback","Data":{"Service":"MiniChat"}}
ΠΡΠ²Π΅Ρ:
{
"Type": "Playback",
"Data": {
"Service": "MiniChat",
"State":"None"
}
}
ΠΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ POST Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π°Π΄ΡΠ΅Ρ http://localhost:4848/api
Π€ΠΎΡΠΌΠ°Ρ ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Ρ WebSockets. Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ: Message, DeleteMessage, UserBan, UserUnban, Speak (Π Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π° Π² ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΡΠΈΠ½ΡΠ΅Π·Π° ΡΠ΅ΡΠΈ).
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ PubSub ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WebSocket ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ: ws://localhost:4848/PubSub
Unknown
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½.Subscribe
- ΠΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ.UnSubscribe
- ΠΡΠΏΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΡΠΎΠ±ΡΡΠΈΠΉ.Echo
- ΠΡ ΠΎ (ΠΠ΅ΡΠ½ΡΡΡ Π·Π°ΠΏΡΠΎΡ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ).Ping
- ΠΠΈΠ½Π³.
ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠΎΠ±ΡΡΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π²ΡΠΈΠΌΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ Π½Π° Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
{"Type":"SoundPlay","Data":{"Play":"test.mp3"}}
{
"Type": "Subscribe",
"Data": {
"Events": [
"SoundPlay",
"SoundPause"
]
}
}
{
"Type": "UnSubscribe",
"Data": {
"Events": [
"SoundPause"
]
}
}
ΠΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ Π²Π΅ΡΠ½Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ°ΠΌΠΈ:
{"Type":"Subscribed","Data":{"Events":["SoundPlay","SoundPause"]}}
{
"Type": "Echo",
"Data": {
"Test": "Kappa"
}
}
{
"Type": "Ping"
}