На чем написан дискорд
Перейти к содержимому

На чем написан дискорд

  • автор:

Discord (мессенджер; 2015)

Discord — бесплатный мессенджер для текстовой и голосовой связи, созданный Джейсоном Цитроном 13 мая 2015 года. Доступен на большинстве современных платформ: браузер. Linux, macOS, Windows, iOS, Android, PlayStation 4, Playstation 5, Xbox. Сегодня Discord насчитывает более 250 млн пользователей, а сама платформа оценивается в 2 млрд долларов.

Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA, если не указано иное.

Как Discord одновременно обслуживает 2,5 млн голосовых чатов с помощью WebRTC

С самого начала мы так спланировали инженерные и продуктовые решения, чтобы Discord хорошо подходил для голосовых чатов во время игры с друзьями. Эти решения позволили сильно масштабировать систему, обладая небольшой командой и ограниченными ресурсами.

В статье рассматриваются различных технологии, которые использует Discord для аудио/видеочатов.

Для ясности всю группу пользователей и каналов мы будем называть «группа» (guild) — в клиенте они называются «серверами». Вместо этого здесь термин «сервер» относится к нашей серверной инфраструктуре.

Главные принципы

Каждый аудио/видеочат в Discord поддерживает много участников. Мы наблюдали, как в больших групповых чатах тысяча человек разговаривают по очереди. Такая поддержка требует клиент-серверной архитектуры, потому что одноранговая пиринговая сеть становится непомерно дорогой при увеличении числа участников.

Маршрутизация сетевого трафика через серверы Discord также гарантирует, что ваш IP-адрес никогда не виден — и никто не запустит DDoS-атаку. У маршрутизация через серверы есть и другие преимущества: например, модерация. Администраторы могут быстренько отключить звук и видео нарушителям.

Клиентская архитектура

Discord работает на многих платформах.

  • Веб (Chrome/Firefox/Edge и т. д.)
  • Автономное приложение (Windows, MacOS, Linux)
  • Телефон (iOS/Android)

Аудио и видео в Discord работает на WebRTC. Таким образом, браузерное приложение полагается на реализацию WebRTC в браузере. Однако приложения для десктопов, iOS и Android используют единый мультимедийный движок C++, построенный поверх собственной библиотеки WebRTC, специально адаптированной к потребностям наших пользователей. Это означает, что некоторые функции в приложении работают лучше, чем в браузере. Например, в наших нативных приложениях мы можем:

  • Обойти приглушение громкости в Windows по умолчанию, когда все приложения автоматически приглушаются при использовании гарнитуры. Это нежелательно, когда вы с друзьями пошли в рейд и координируете действия в чате Discord.
  • Использовать собственный регулятор громкости вместо глобального микшера операционной системы.
  • Обрабатывать исходные аудиоданные для обнаружения голосовой активности и трансляции звука и видео в играх.
  • Уменьшате пропускную способность и потребление ресурсов CPU в периоды тишины — даже в самых многочисленных голосовых чатов в любой момент времени одновременно говорят всего несколько человек.
  • Обеспечить общесистемную функциональность режима «рации» (push to talk).
  • Отправлять вместе с аудио- видеопакетами дополнительную информацию (например, индикатор приоритета в чате).

В Discord голосовая и видеосвязь инициируется путём ввода голосового канала или вызова. То есть связь всегда инициируется клиентом — это снижает сложность клиентской и серверной части, а также повышает устойчивость к ошибкам. В случае сбоя инфраструктуры участники могут просто повторно подключиться к новому внутреннему серверу.

Под нашим контролем

Контроль нативной библиотеки позволяет реализовать некоторые функции иначе, чем в браузерной реализации WebRTC.

Во-первых, WebRTC полагается на протокол Session Description Protocol (SDP) для согласования аудио/видео между участниками (до 10 КБ на каждый обмен пакетами). В собственной библиотеке для создания обоих потоков — входящего и исходящего — используется API более низкого уровня от WebRTC ( webrtc::Call ). При подключении к голосовому каналу происходит минимальный обмен информацией. Это адрес и порт сервера бэкенда, метод шифрования, ключи, кодек и идентификация потока (около 1000 байт).

webrtc::AudioSendStream* createAudioSendStream( uint32_t ssrc, uint8_t payloadType, webrtc::Transport* transport, rtc::scoped_refptr audioEncoderFactory, webrtc::Call* call) < webrtc::AudioSendStream::Config config; config.rtp.ssrc = ssrc; config.rtp.extensions = >; config.encoder_factory = audioEncoderFactory; const webrtc::SdpAudioFormat kOpusFormat = ; config.send_codec_spec = webrtc::AudioSendStream::Config::SendCodecSpec(payloadType, kOpusFormat); webrtc::AudioSendStream* audioStream = call->CreateAudioSendStream(config); audioStream->Start(); return audioStream; >

Кроме того, для определения наилучшего маршрута между участниками WebRTC использует Interactive Connectivity Establishment (ICE). Поскольку у нас каждый клиент подключается к серверу, нам не нужен ICE. Это позволяет обеспечить гораздо более надёжное соединение, если вы находитесь за NAT, а также сохранить ваш IP-адрес в секрете от других участников. Клиенты периодически пингуются, чтобы файрвол сохранял открытое соединение.

Наконец, WebRTC использует Secure Real-time Transport Protocol (SRTP) для шифрования носителей. Ключи шифрования устанавливаются с помощью протокола Datagram Transport Layer Security (DTLS) на основе стандартного TLS. Встроенная библиотека WebRTC позволяет реализовать собственный транспортный уровень с помощью webrtc::Transport API.

Вместо DTLS/SRTP мы решили использовать более быстрое шифрование Salsa20. Кроме того, мы не отправляем аудиоданные в периоды тишины — частое явление, особенно в больших чатах. Это приводит к значительной экономии пропускной способности и ресурсов CPU, однако и клиент, и сервер должны быть готовы в любой момент прекратить приём данных и переписать порядковые номера аудио/видеопакетов.

Поскольку веб-приложение использует браузерную реализацию WebRTC API, тут нельзя отказаться от SDP, ICE, DTLS и SRTP. Клиент и сервер обмениваются всей необходимой информацией (менее 1200 байт при обмене пакетами) — и у клиентов на основе этой информации устанавливается сессия SDP. Бэкенд отвечает за устранение различий между десктопными и браузерными приложениями.

Архитектура бэкенда

На бэкенде работает несколько сервисов для голосовых чатов, но мы сосредоточимся на трёх: Discord Gateway, Discord Guilds и Discord Voice. Все наши сигнальные серверы написаны на Elixir, что позволяет многократно повторно использовать код.

Когда вы в сети, ваш клиент поддерживает соединение WebSocket к шлюзу Discord Gateway (мы называем его шлюзовым подключением WebSocket). Через это соединение ваш клиент получает события, связанные с группами и каналами, текстовые сообщения, пакеты присутствия и т. д.

При подключении к голосовому каналу статус подключения отображается объектом состояния голосовой связи. Клиент обновляет этот объект по шлюзовому подключению.

defmodule VoiceStates.VoiceState do @type t :: % < session_id: String.t(), user_id: Number.t(), channel_id: Number.t() | nil, token: String.t() | nil, mute: boolean, deaf: boolean, self_mute: boolean, self_deaf: boolean, self_video: boolean, suppress: boolean >defstruct session_id: nil, user_id: nil, token: nil, channel_id: nil, mute: false, deaf: false, self_mute: false, self_deaf: false, self_video: false, suppress: false end

При подключении к голосовому каналу вам назначают один из серверов Discord Voice. Он отвечает за передачу звука каждому участнику канала. Все голосовые каналы в группе назначаются одному серверу. Если вы первый в чате, сервер Discord Guilds отвечает за назначение сервера Discord Voice всей группе с помощью описанного ниже процесса.

Назначение сервера Discord Voice

Каждый сервер Discord Voice периодически сообщает о своём состоянии и нагрузке. Эта информация помещается в систему обнаружения сервисов (мы используем etcd), как обсуждалось в предыдущей статье.

Сервер Discord Guilds следит за системой обнаружения сервисов и назначает группе наименее используемый сервер Discord Voice в данном регионе. Когда он выбран, все объекты состояния голосовой связи (также поддерживаемые сервером Discord Guilds) передаются на сервер Discord Voice, чтобы тот мог настроить переадресацию аудио/видео. Клиенты уведомляются о выбранном сервере Discord Voice. Тогда клиент открывает второе соединение WebSocket с голосовым сервером (мы называем его голосовым соединением WebSocket), которое используется для настройки переадресации мультимедиа и индикации речи.

Когда в клиенте отображается статус Awaiting Endpoint, это означает, что сервер Discord Guilds ищет оптимальный сервер Discord Voice. Сообщение Voice Connected означает, что клиент успешно обменялся пакетами UDP с выбранным сервером Discord Voice.

Сервер Discord Voice содержит два компонента: сигнальный модуль и блок ретрансляции мультимедиа, называемый блоком избирательной пересылки, SFU (selective forwarding unit). Сигнальный модуль полностью контролирует SFU и отвечает за генерацию идентификаторов потоков и ключей шифрования, перенаправление индикаторов речи и т. д.

Наш SFU (на C++) отвечает за направление аудио- и видеотрафика между каналами. Он разработан своими силами: для нашего конкретного случая SFU обеспечивает максимальную производительность и, таким образом, самую большую экономию. При модерации нарушителей (отключение звука на сервере), их аудиопакеты не обрабатываются. SFU также работает мостом между нативными и браузерными приложениями: он реализует транспорт и шифрование и для браузера и для нативных приложений, преобразуя пакеты в процессе передачи. Наконец, SFU отвечает за обработку протокола RTCP, который используется для оптимизации качества видео. SFU собирает и обрабатывает отчёты RTCP от получателей — и уведомляет отправителей, какая полоса доступна для передачи видео.

Отказоустойчивость

Поскольку напрямую из интернета у нас доступны только сервера Discord Voice, речь пойдёт о них.

Сигнальный модуль непрерывно контролирует SFU. Если тот сбоит, он мгновенно перезапускается с минимальной паузой в обслуживании (несколько потерянных пакетов). Состояние SFU восстанавливается сигнальным модулем без какого-либо взаимодействия с клиентом. Хотя сбои SFU редки, мы используем тот же механизм для обновления SFU без перерывов в обслуживании.

Когда падает сервер Discord Voice, он не отвечает на пинг — и удаляется из системы обнаружения сервисов. Клиент также замечает сбой сервера из-за разрыва голосового соединения WebSocket, тогда он запрашивает пинг голосового сервера через шлюзовое соединение WebSocket. Сервер Discord Guilds подтверждает сбой, консультируется с системой обнаружения сервисов и назначает группе новый сервер Discord Voice. Затем Гильдии Discordов отправляют все объекты состояния голоса на новый голосовой сервер. Все клиенты получают уведомление о новом сервере и подключаются к нему для запуска настройки мультимедиа.

Довольно часто серверы Discord Voice попадают под DDoS (мы видим это по быстрому увеличению входящих IP-пакетов). В этом случае мы выполняем такую же процедуру, как при сбое сервера: удаляем его из системы обнаружения сервисов, выбираем новый сервер, переводим на него все объекты состояния голосовой связи и уведомляем клиентов о новом сервере. Когда DDoS-атака утихает, сервер возвращается обратно в систему обнаружения служб.

Если владелец группы решает выбрать новый регион для голоса, мы выполняем очень похожую процедуру. Сервер Discord Guilds выбирает наилучший доступный голосовой сервер в новом регионе, консультируясь с системой обнаружения сервисов. Затем он переводим на него все объекты состояния голосовой связи и уведомляем клиентов о новом сервере. Клиенты разрывают текущее соединение WebSocket со старым сервером Discord Voice и создают новое соединение с новым сервером Discord Voice.

Масштабирование

Вся инфраструктура Discord Gateway, Discord Guilds и Discord Voice поддерживает горизонтальное масштабирование. Discord Gateway и Discord Guilds работают в облаке Google.

У нас более 850 голосовых серверов в 13 регионах (размещёнными более чем в 30 дата-центрах) по всему миру. Такая инфраструктура обеспечивает большую избыточность на случай сбоев в дата-центрах и DDoS. Мы работаем с несколькими партнёрами и используем свои физические серверы в их дата-центрах. Совсем недавно добавили регион Южной Африки. Благодаря инженерным усилиям как в клиентской, так и в серверной архитектуре, теперь Discord способен обслуживать одновременно более 2,6 миллиона пользователей голосового чата с исходящим трафиком более 220 Гбит/с и 120 млн пакетов в секунду.

Что дальше?

Мы постоянно следим за качеством голосовой связи (метрики поступают с клиентской стороны на серверы бэкенда). В будущем эта информация поможет в автоматическом обнаружении и устранении деградаций.

Хотя мы запустили видеочат и скринкасты год назад, но сейчас их можно использовать только в личных сообщениях. По сравнению со звуком, видео требует значительно большей мощности CPU и пропускной способности. Задача состоит в том, чтобы сбалансировать объём пропускной способности и ресурсов CPU/GPU, используемых для обеспечения наилучшего качества видео, особенно когда группа геймеров в канале находится на разных устройствах. Решением проблемы может стать технология масштабируемого видеокодирования Scalable Video Coding (SVC), расширение стандарта H.264/MPEG-4 AVC.

Для скринкастов нужно ещё больше полосы, чем для видео, из-за более высокого FPS и разрешения, чем у обычной веб-камеры. Мы сейчас работаем над поддержкой аппаратное кодирования видео в десктопном приложении.

  • Высокая производительность
  • Мессенджеры
  • Софт
  • Социальные сети и сообщества
  • Звук

Discord

Discord — онлайн-сервис c функциями обмена мгновенными сообщениями, чата, голосовых и видеоконференций. Изначально сервис был создан для компьютерных геймеров, но в настоящее время всё чаще используется и в других областях. Discord можно использовать как веб-приложение или с проприетарным клиентским программным обеспечением во всех основных операционных системах. Разработчики Discord утверждают, что у сервиса более 250 миллионов зарегистрированных пользователей.

  • 1 Идея и разработка
  • 2 Публикация
  • 3 Изменения 2016 года
  • 4 Изменения 2018 года
  • 5 Изменения 2020 года
  • 6 Изменения 2021 года
  • 7 Охват
  • 8 Discord Store
  • 9 Критика
  • 10 Примечания
  • 11 Ссылки

Идея и разработка

Приложение Discord было разработано для параллельного использования с компьютерными играми, в первую очередь для обмена информацией через чат. Но Discord также позволяет совершать голосовые и видеозвонки с дополнительной возможностью совместного использования всего экрана или отдельных окон.

Discord был задуман Джейсоном Цитроном, основателем OpenFeint, игровой платформы для мобильных игр, и Станиславом Вишневским, основателем Guildwork, ещё одной игровой платформы. Цитрон продал OpenFeint компании GREE в 2011 году за 104 млн долларов, вместе с которой в 2012 году основал Hammer & Chisel, студию по разработке игр. Их первым продуктом была Fates Forever, выпущенная в 2014 году, которая, как предполагал Цитрон, станет первой игрой MOBA («многопользовательская онлайновая боевая арена») на мобильных платформах, но разработка не имела коммерческого успеха [3] .

По словам Цитрона, в процессе работы он заметил, насколько сложно его команде было разработать тактику в таких играх, как Final Fantasy XIV и League of Legends, с доступным программным обеспечением для передачи голоса по IP (VoIP). Это привело к разработке вспомогательного чата с упором на удобство использования и с минимальным влиянием на производительность.

Для разработки Discord компания Hammer & Chisel получила дополнительное финансирование от YouWeb’s 9+ Incubator, который ранее также финансировал стартап Hammer & Chisel, а также от Benchmark Capital и Tencent.

Discord содержит почти все функции, которые предоставляют платформы, такие как Skype или TeamSpeak. Например, можно создавать бесплатные общедоступные «серверы» с голосовыми и текстовыми каналами. Термин «сервер» относится к набору ролей (roles) с различными разрешениями, которые администраторы могут назначать пользователям и каналам связи (channels), которые используются сообществом.

Все данные проходят через серверы Discord Inc., чтобы предотвратить раскрытие IP-адреса другим пользователям, так как это создает риски, например, DDoS-атаки. Поскольку все данные находятся в одном месте, к ним также можно получить доступ с любого устройства. Discord можно использовать со всеми основными операционными системами: Windows, macOS , Linux , Android, iOS, а также через веб-браузер.

Публикация

Discord был выпущен в мае 2015 года под доменным именем discordapp.com. По словам Цитрона, не предпринималось никаких конкретных мер для привлечения целевой аудитории, но некоторые сабреддиты (тематические разделы сайтов), связанные с играми, быстро начали заменять свои ссылки IRC ссылками Discord. Сервис Discord широко используется игроками в киберспорте и LAN-турнирах. Компания извлекла выгоду из отношений со стримерами Twitch и сообществами сабреддитов Diablo и World of Warcraft [4] .

Изменения 2016 года

В январе 2016 года Discord получила дополнительное финансирование в размере 20 миллионов долларов, включая инвестиции от WarnerMedia (тогда TimeWarner). В 2019 году WarnerMedia Investment Group продала свою долю, поскольку была закрыта после приобретения компанией AT&T.

В обновлении от 28 июля 2016 года были добавлены голосовые вызовы, между отдельными пользователями и в групповые.

В обновлении от 3 ноября 2016 года добавлена ​​​​возможность реагирования на сообщения других пользователей смайликами с помощью так называемых «реакций смайликов».

8 декабря 2016 года был выпущен «GameBridge», SDK, который позволяет интегрировать Discord в приложение.

В январе 2017 года была платная подписка «Discord Nitro». Членам Nitro были предложены разнообразные бонусы и стали доступны некоторые расширенные функции.

С 5 октября 2017 года общение стало возможным с помощью видеозвонков в дополнение к обычным голосовым звонкам и сообщениям.

Изменения 2018 года

В апреле 2018 года Microsoft объявила, что предоставит поддержку Discord для пользователей Xbox Live, что позволит им связать свои учетные записи Discord и Xbox Live и подключиться к списку друзей Xbox Live через Discord. В декабре 2018 года компания объявила, что привлекла 150 миллионов долларов финансирования при оценке капитализации в 2 миллиарда долларов. Раунд финансирования возглавила Greenoaks Capital при участии Firstmark, Tencent , IVP, Index Ventures и Technology Opportunity Partners.

Изменения 2020 года

В марте 2020 года Discord изменил свой девиз с «Чат для геймеров» на «Чат для сообществ и друзей» и представил шаблоны серверов. Это было сделано в ответ на резкое увеличение числа пользователей во время пандемии COVID-19.

В апреле 2020 года имя пользователя Discord в Твиттере было изменено с @discordapp на @discord. Позже, в мае 2020 года, Discord изменил свой основной домен с discordapp.com на discord.com.

В июне 2020 года компания объявила, что смещает фокус деятельности с видеоигр и предлагает более универсальный, полнофункциональный клиент для общения и чата, представив свой новый слоган «Ваше место для беседы» и обновленный веб-сайт. Другие запланированные изменения включают сокращение количества игровых шуток, используемых в клиенте, улучшение пользовательского опыта адаптации и увеличение ёмкости и надёжности сервера. Компания объявила, что получила дополнительные 100 миллионов долларов инвестиций для поддержки этих изменений [5] [6] .

Изменения 2021 года

Логотип Discord в 2015—2021 годах

В марте 2021 года Discord объявила о наёме своего первого финансового директора, бывшего финдиректора Pinterest Томаша Марцинковски. Discord удвоил свою ежемесячную базу пользователей примерно до 140 миллионов в 2020 году. Начавшиеся переговоры с Microsoft, были прерваны из-за решения остаться независимым. Вместо этого Discord запустил еще один инвестиционный раунд в апреле 2021 года. Среди инвесторов была Sony Interactive Entertainment; с намерением интегрировать часть сервисов Discord с PlayStation Network к 2022 году.

В июле 2021 года Discord приобрела Sentropy, компанию, специализирующуюся на использовании систем искусственного интеллекта для мониторинга онлайн-сетей на предмет оскорбительных сообщений, чтобы выявлять и отсекать проблемных пользователей.

В преддверии нового раунда финансирования в августе 2021 года Discord сообщила о выручке за 2020 год в размере 130 миллионов долларов, втрое больше по сравнению с прошлым годом. Компания на тот момент оценивалась в 15 миллиардов долларов. Цитрон сообщил, что компания все ещё ведёт переговоры с несколькими потенциальными покупателями, включая всех основных производителей игровых консолей. Это обеспечило компании дополнительные инвестиции в размере 500 млн долларов США в сентябре 2021 года.

В сентябре 2021 года Google сообщила о прекращении разработки и поддержки двух самых популярных музыкальных ботов, используемых в Discord — «Groovy» и «Rythm», которые были установлены примерно на 36 миллионах серверов. Эти боты позволяли пользователям воспроизводить песни с YouTube без рекламы. Две недели спустя Discord в партнерстве с YouTube протестировал функцию «Смотрите вместе», которая позволяет пользователям Discord вместе смотреть видео на YouTube.

Охват

Hammer & Chisel объявила, что у Discord было 3 млн пользователей в январе 2016 года и 11 млн пользователей в июле 2016 года с ежемесячным приростом в 1 млн пользователей.

В декабре 2016 года разработчики объявили, что в Discord теперь зарегистрировано более 25 млн пользователей, которые отправляют более 100 млн сообщений в день.

В мае 2016 года, через год после его запуска сервиса, журнал PC Gamer назвал Discord лучшим сервисом VoIP.

В мае 2017 года Discord исполнилось два года, компания сообщила, что 45 миллионов зарегистрированных пользователей ежедневно отправляют 200 миллионов сообщений. Ежемесячный трафик данных, генерируемый только голосовым чатом, составляет 16 петабайт.

По состоянию на декабрь 2017 года платформа сообщила о 87 млн зарегистрированных пользователей, из которых 14 млн активны ежедневно. Кроме того, приложение доступно в 130 странах и ежемесячно отправляется 9,5 млрд сообщений.

В мае 2018 года количество зарегистрированных пользователей увеличилось до 130 млн.

В марте 2019 года Discord объявил, что у него 200 миллионов зарегистрированных пользователей.

По состоянию на январь 2020 года Discord сообщил о более чем 250 млн зарегистрированных пользователей, 56 млн активных пользователей в месяц и 963 млн ежедневных текстовых сообщений [7] .

Discord Store

В августе 2018 году для 50 тысяч канадских пользователей сервиса был запущен онлайн-магазин Discord Store, в котором игры можно было покупать в виде загружаемых файлов. В октябре магазин был запущен в бета-версии по всему миру. Магазин начинался с 80 игр, некоторые из которых были эксклюзивными. Цена составляла десять долларов США в месяц. В ходе опроса разработчиков игр 6 % респондентов заявили, что пользуются магазином. В магазин было вложено 150 млн долларов США, среди инвесторов были Tencent, Firstmark, IVP, Index Ventures, Technology Opportunity Partners и Greenoaks Capital. Хотя магазин был менее известен по сравнению с другими аналогичными платформами, ему удалось привлечь около 200 миллионов пользователей Discord. Магазин был разработан, чтобы привлечь разработчиков, позволяя им получать 90 % прибыли от продажи своих продуктов. По этому показателю Discord опередил многих конкурирующих ритейлеров: Epic Games Store предлагала разработчикам 88 %, а Steam — только 70 %.

12 сентября 2019 года Discord объявил о прекращении работы магазина Discord из-за недостаточного спроса. 15 октября 2019 года все игры были удалены и больше не доступны пользователям. Уже купленные через Discord Store игры остались пригодными для использования.

Критика

Политика конфиденциальности Discord разрешает компании передавать, собирать и обрабатывать все чаты, сообщения и другие данные в незашифрованном виде для продажи. Соглашаясь с условиями использования, пользователю прямо разрешается отслеживать и хранить информацию из прямых сообщений или отправленных изображений и голосовых чатов. Кроме того, все данные могут быть перенесены на американские серверы. Таким образом, Discord не гарантирует защиту персональных данных, требуемую GDPR, и, следовательно, не соответствует требованиям GDPR.

Исследователь экстремизма Джулия Эбнер, работающая в Институте стратегического диалога, подвергла критике тот факт, что правые экстремисты общаются в сети через Discord. Из-за возможных иерархий, таких как распределение разных ролей, платформа организации пользуется популярностью у некоторых неонацистов. В 2017 году через Discord была организована демонстрация правых экстремистов в Шарлоттсвилле (штат Верджиния). Discord отреагировал на критику, заблокировав упомянутые аккаунты и удалив «сервер».

Примечания

  1. Vishnevskiy, StanislavHow Discord Scaled Elixir to 5,000,000 Concurrent Users(англ.). DiscordApp (6 июня 2017). Дата обращения: 15 декабря 2017.Архивировано 26 апреля 2020 года.
  2. Nowack, MattUsing Rust to Scale Elixir for 11 Million Concurrent Users(англ.). Discord Blog. Discord Inc. (17 мая 2019). Дата обращения: 7 июня 2019.Архивировано 26 апреля 2020 года.
  3. Rao, LeenaJapanese Company GREE Buys Mobile Social Gaming Platform OpenFeint For $104 Million In Cash(неопр.) . TechCrunch (April 21, 2011). Дата обращения: 21 июня 2017.Архивировано 5 июля 2017 года.
  4. James Brightman.Jason Citron lands $20m for Discord(неопр.) . gamesindustry.biz (26 января 2016). Дата обращения: 8 октября 2016.Архивировано 18 июня 2016 года.
  5. Шевкун, Михаил.Discord перестанет быть платформой только для геймеров(неопр.) . Игромания (2 июля 2020). Дата обращения: 2 июля 2020.Архивировано 2 июля 2020 года.
  6. Воробьёв, Геннадий.Discord отходит от своих геймерских корней(неопр.) . StopGame.ru (1 июля 2020). Дата обращения: 2 июля 2020.Архивировано 3 июля 2020 года.
  7. Ian Sherr.Discord, Slack for gamers, tops 250 million registered users(англ.). CNET (13 мая 2019). Дата обращения: 25 мая 2020.Архивировано 22 февраля 2020 года.

Ссылки

Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело!

  • Знание.Вики:Cite web (не указан язык)
  • Знание.Вики:Статьи без ссылки на Викисклад
  • Программное обеспечение по алфавиту
  • Технологии
  • Все статьи
  • Программы мгновенного обмена сообщениями

DIscord bot

Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Нужен человек который сможет добавлять некоторые функции в бота, по мере моей финансовой возможности. Бот написан на c#

Бот будет копировать с сайта информацию об обновлениях в игре и постить их в текстовый канал.

2)Так же в боте есть валюта и магазин.

Магазин включает себя продажу ролей, нужно сделать чтобы пользователю при покупке роли, роль давалась на определенное время, например на месяц.

Программист нужен на довольно долгое время, если все пройдет успешно – еще не раз обращусь

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *