
Создание протокола взаимодействия между серверами. Реализация базовых контрактов
with vik-borisov|8 years experience|C#-.NET
22044views
«Разработка мессенджера - OpenTl.Server »
- русский язык
- Programming
.NET
- Project length: 38h 30m
Проект OpenTl - это попытка создать открытый мессенджер с поддержкой шифрования между клиентами, поддерживающий открытое API мессенджера Telegram. OpenTl.Server - это серверная реализация мессенджера.
Overview
OpenTl
Проект OpenTl - это попытка создать открытый мессенджер с поддержкой шифрования между клиентами по протоколу MtProto. На данный момент разработка разделена на 3 части:
- OpenTl.Server. В проекте собрана вся серверная реализация менеджера. Этот стрим как раз о ней.
- OpenTl.ClientApi. Реализация API для доступа как к мессенджеру OpenTl , так и Telegram.
- OpenTl.Schema. Реализация контрактов между клиентом и сервером.
Трансляция по разработке проектов OpenTl.ClientApi и OpenTl.Schema
Введение
Проект OpenTl.Server логически разделен на 2 части:
- OpenTl.Server.Front - отвечает за подключение клиентов и маршрутизацию запросов. Используется библиотека DotNetty
- OpenTl.Server.Back - отвечает за обработку запросов клиентов. Используется библиотека Orleans
Проект разрабатывается на dotnet core на языке C#. Поддерживается .net 4.6.1 (в связи с отсутствием порта библиотеки Orleans на dotnet core)
Используемые технологии и библиотеки
- dotnet core 1.1
- DotNetty 0.4.5
- Orleans 1.4.х
- Autofac 4.6.x
- xUnit.net 2.x
IDE и плагины
- Основные IDE по настроению или Visual Studio 2017 + JetBrains Resharper, или JetBrains Rider
- Основной редактор Visual Studio Code
- Git клиент SmartGit
Портрет зрителя
- Тебя интересует язык C#
- Ты хочешь разобраться в архитектуре серверных приложений
- Ты стремится познать глубины .Net
- Ты не боишься сложных задач
- Тебя интересует не только практические знания, но и теория
Необходимые знания
- Знания C# \ .Net не менее уровня middle-разработчика
- ООП (куда же без него)
- Git базовое владение
- Знание основных паттернов проектирование
- SOLID, как минимум зачем нужен IoC
Немного о себе
Мне 29 лет из них 8 лет занимаюсь коммерческой разработкой ПО на платформе .Net. Работаю в компании БАРС Груп в должности руководителя отдела разработки. Проживаю в городе Новосибирск, Россия. Со всем проектами можете ознакомиться на GitHub
Трансляции выходят каждую пятницу в 16-00 по МСК
Project Outline
Расписание примерное. Уточняется после трансляции
2 июня Обзор проекта. Знакомство с архитектурой. Доказательство реализуемости проекта
9 июня Создание протокола взаимодействия между серверами. Реализация базовых контрактов
23 июня Разработка механизма "рукопожатия" между клиентом и сервером. Часть 1
30 июня Разработка механизма "рукопожатия" между клиентом и сервером. Часть 2
7 июля Разработка механизма "рукопожатия" между клиентом и сервером. Часть 3
14 июля Разработка механизма "рукопожатия" между клиентом и сервером. Часть 4
21 июля Разработка механизма "рукопожатия" между клиентом и сервером. Завершающая
28 июля Разработка протокола взаимодействия между клиентом и сервером на уровне TCP
4 августа Разработка протокола шифрования между клиентом и сервером с помощью общего ключа. Часть 1
11 августа Разработка протокола шифрования между клиентом и сервером с помощью общего ключа. Часть 2
18 августа Инициализация соединения. Регистрация пользователя
Продолжение следует