Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

Протокол работы с сервером

Запуск сервера

go run main.go (localhost:7788) Подключение по ip локальной wi-fi сети

Запросы от клиента на сервер

  1. Регистрация
{
	"action":"register",
	"data":{
		"login":"MY_LOGIN",
		"pass":"MD5_FROM_PASS",
		"nick":"NICKNAME"
	}
}
  1. Авторизация
{
	"action":"auth",
	"data":{
		"login":"MY_LOGIN",
		"pass":"MD5_FROM_PASS"
	}
}
  1. Запросить информацию о пользователе
{
	"action":"userinfo",
	"data": {
		"user":"USER_ID",
		"cid":"MY_USER_ID",
		"sid":"MY_SESSION_ID"
	}
}
  1. Запрос контакт листа
{
	"action":"contactlist", 
	"data": {
        "cid":"MY_USER_ID",
        "sid":"MY_SESSION_ID"
    }
}
  1. Добавление в контакт лист
{
    "action":"addcontact", 
    "data": {
        "uid":"USER_ID",
        "cid":"MY_USER_ID",
        "sid":"MY_SESSION_ID"
    }
}
  1. Удаление из контакт листа
{
    "action":"delcontact", 
    "data": {
        "uid":"USER_ID",
        "cid":"MY_USER_ID",
        "sid":"MY_SESSION_ID"
    }
}
  1. Отправка сообщения
{
    "action":"message",
    "data": {
        "cid":"MY_USER_ID",
        "sid":"MY_SESSION_ID",
        "uid":"USER_ID",
        "body":"MESSAGE",
        "attach": {
            "mime":"MIME_TYPE_OF_ATTACH",
            "data":"BASE64_OF_ATTACH"
        }
    }
}
  1. Импорт контактов
{
    "action":"import",
    "data":{
        "contacts":[
            {
                "myid":"MY_ID",
                "name":"NAME",
                "phone":"PNONE",
                "email":"EMAIL"
            },
            {
                "myid":"MY_ID",
                "name":"NAME",
                "phone":"PNONE",
                "email":"EMAIL" 
            }
        ]
    }
}
  1. Изменить свою информацию
{
    "action":"setuserinfo",
    "data": {
        "user_status":"STATUS_STRING",
        "cid":"MY_USER_ID",
        "sid":"MY_SESSION_ID"
        "email":"EMAIL",
        "phone":"PHONE",
        "picture":"BASE64_SMALL_PIC"
    }
 }

## Ответы сервера на клиент
1. Welcome сообщение приходит при конекте к серверу
```json
{
	"action":"welcome",
	"message": "WELCOME_TEXT",
	"time":UNIXTIMESTAMP
}
  1. Ответ на авторизацию
{
	"action":"auth",
	"data":{
		"status":[0-9]+,
		"error":"TEXT_OF_ERROR",
		"sid":"SESSION_ID",
		"uid":"USER_ID"
	}
}
  1. Ответ на регистрацию
{
	"action":"register",
	"data":{
		"status":[0-9]+,
		"error":"TEXT_OF_ERROR"
	}
}
  1. Ответ на запрос информации о пользователе
{
	"action":"userinfo",
	"data":{
		"status":[0-9]+,
		"error":"TEXT_OF_ERROR",
		"nick":"NICKNAME",
        "email":"EMAIL",
        "phone":"PHONE",
        "picture":"BASE64_SMALL_PIC"
		"user_status":"STATUS_STRING"
	}
}
  1. Ответ на запрос контакт листа
{
    "action":"contactlist", 
    "data":{
        "status":"[0-9]+",
        "error":"TEXT_OF_ERROR",
        "list":[
            {
                "myid":"YOUR_ID",
                "uid":"UID",
                "nick":"NICK NAME",
                "email":"EMAIL",
                "phone":"PHONE",
                "picture":"BASE64_SMALL_PIC"
            },
            {
                "myid":"YOUR_ID",
                "uid":"UID",
                "nick":"NICK NAME",
                "email":"EMAIL",
                "phone":"PHONE",
                "picture":"BASE64_SMALL_PIC"
            },
        ]
    }
}
  1. Добавление контакта
{
    "action":"addcontact", 
    "data": {
        "status":"[0-9]+",
        "error":"TEXT_OF_ERROR",
        "user":{
                "uid":"UID",
                "nick":"NICK NAME",
                "email":"EMAIL",
                "phone":"PHONE"
        }
    }
}
  1. Удаление контакта
{
    "action":"delcontact", 
    "data": {
        "status":"[0-9]+",
        "error":"TEXT_OF_ERROR",
        "uid":"UID"
    }
}
  1. Импорт контактов
{
    "action":"import", 
    "data":{
        "status":"[0-9]+",
        "error":"TEXT_OF_ERROR",
        "list":[
            {
                "myid":"YOUR_ID",
                "uid":"UID",
                "nick":"NICK NAME",
                "email":"EMAIL",
                "phone":"PHONE"
            },
            {
                "myid":"YOUR_ID",
                "uid":"UID",
                "nick":"NICK NAME",
                "email":"EMAIL",
                "phone":"PHONE"
            },
        ]
    }
}
  1. Изменить свою информацию
{
    "action":"setuserinfo",
    "data":{
        "status":[0-9]+,
        "error":"TEXT_OF_ERROR"
    }
 } 
  1. Отправка сообщения
{
    "action":"message", 
    "data":{
        "status":"[0-9]+",
        "error":"TEXT_OF_ERROR"
    }
}

События присылаемые с сервера на клиент

  1. Новое сообщение
{
    "action":"ev_message",
    "data":{
        "from":"USER_ID",
        "nick":"NICKNAME",
        "body":"TEXT_OF_MESSAGE",
        "time":"TIMESPAMT",
        "attach": {
            "mime":"MIME_TYPE_OF_ATTACH",
            "data":"BASE64_OF_ATTACH"
        }
    }
 }

Коды ошибок

// Error codes
const (
	ErrOK              = 0 // All OK
	ErrAlreadyExist    = 1 // Login or Nickname already exist
	ErrInvalidPass     = 2 // Invalid login or password
	ErrInvalidData     = 3 // Invalid JSON
	ErrEmptyField      = 4 // Empty Nick, Login, Password or Channel
	ErrAlreadyRegister = 5 // User is already registered
	ErrNeedAuth        = 6 // User has to auth
	ErrNeedRegister    = 7 // User has to register
	ErrUserNotFound    = 8 // User not found by uid
)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages