- Установить Node.js и npm.
- Установить и запустить MongoDB.
- Установить зависимости:
npm install
- Запустить сервер:
npm start
Набрать в адресной строке браузера https://localhost:8080
Чтобы отправить приватное сообщение другому игроку, необходимо в чате набрать @*player-name* some-message
(*player-name*
заменить на никнейм получателя). Если получатель в момент отправки сообщения находится оффлайн, то сервер сообщит об этом. При этом сообщение пропадёт, т.к. история чата на сервере не сохраняется.
Чтобы отправить команду боту, необходимо в чате набрать /command-name
.
Доступные комманды:
/help
- список всех доступных комманд/regdate
- дата регистрации/time
- время проведённо в игре
Взаимодействие с сервером осуществляется посредством библиотеки socket.io
Пример
var socket = io('server-address');
// Отправить сообщение
socket.emit('message-name', {
field1: 0,
field2: 'some-data',
field3: [ false, 1, '2' ],
field4: { data: 'in-obkect' }
});
// Подписаться на сообщение
socket.on('message-name', function(data) {
// some code
console.log(data.field1 + data.field2);
});
Отправляется при авторизации
data = {
username: 'user1',
password: 'pass1'
}
Отправляется при регистрации
data = {
username: 'user1',
password: 'pass1'
}
Запрос текущих данных об игроке
data = {
}
Отправляется при завершении игры
data = {
coins: 10, // кол-во собранных монеток
score: 100, // кол-во очков
time: 1000 // время в игре (в мс)
}
Отправка сообщения в чате
data = {
message: 'my-chat-message' // текст отправляемого сообщения
}
Отправляется в ответ на сообщение registration
data = {
successfully: true // булевое значение, информирующее успешно прошла регистрация или нет
}
Отправляется в ответ на сообщение auth
data = {
successfully: true, // булевое значение, информирующее успешно прошла аутентификация или нет
// если авторизация успешна, то будут доступны следующие поля
bestscore: 0, // лучший счёт игрока
time: 0, // время, проведённое в игре в мс
coins: 0, // кол-во монеток
topscores: [...] // массив с налучшими результатами
}
Отправляется в ответ на сообщение get-player-data
data = {
bestscore: 0, // лучший счёт игрока
time: 0, // время, проведённое в игре в мс
coins: 0 // кол-во монеток
}
Обновление количества пользователей онлайн. Отправляется только авторизированным пользователям.
data = {
pOnline: 0 // кол-во подключённых в данный момент игроков
}
Обновление списка лучших результатов. Отправляется только авторизированным пользователям.
data = {
scores: [ // массив с объектами, содержащими никнейм игрока и счёт
{ user: 'username1', score: 0 },
{ user: 'username1', score: 1 },
{ user: 'username1', score: 2 }
]
}
Переотправка сообщения остальным игрокам. Отправляется только авторизированным пользователям.
data = {
message: 'chat-message', // сообщение
user: 'username', // имя отправителя
private: false // булевое значение, указывающее это приватное сообщение или нет
}