1.1.8 • Published 2 years ago
backend-chat-server v1.1.8
Backend Chat
Install
make installRun
$ make start
# curl http://localhost:5001/api/v1/dataInstall npm-package
npm i @hexlet/chat-serverRun npm-package
npx start-serverUsage
Usage: start-server start-server [OPTIONS]
Options:
-v, --version output the version number
-a, --address <address> address to listen on (default: "0.0.0.0")
-p, --port <port> port to listen on (default: 5001)
-s, --static <path> path to static assets files (default: "./build")
-h, --help display help for commandREST API
Login
/api/v1/login
axios.post('/api/v1/login', { username: 'admin', password: 'admin' }).then((response) => {
console.log(response.data); // => { token: ..., username: 'admin' }
});Get data
/api/v1/data
axios.get('/api/v1/data', {
headers: {
Authorization: `Bearer ${token}`,
},
}).then((response) => {
console.log(response.data); // => { channels: [...], currentChannelId: 1, messages: [] }
});Create new user
/api/v1/signup
axios.post('/api/v1/signup', { username: 'newuser', password: '123456' }).then((response) => {
console.log(response.data); // => { token: ..., username: 'newuser' }
});Chat API
Socket
// subscribe new messages
socket.on('newMessage', (payload) => {
console.log(payload); // => { body: "new message", channelId: 7, id: 8, username: "admin" }
});// emit new message
socket.emit('newMessage', { body: "message text", channelId: 1, username: 'admin' });// subscribe new channel
socket.on('newChannel', (payload) => {
console.log(payload) // { id: 6, name: "new channel", removable: true }
});// emit new channel
socket.emit('newChannel', { name: "new channel" });// subscribe remove channel
socket.on('removeChannel', (payload) => {
console.log(payload); // { id: 6 };
});// emit remove channel
socket.emit('removeChannel', { id: 6 });// subscribe rename channel
socket.on('renameChannel', (payload) => {
console.log(payload); // { id: 7, name: "new name channel", removable: true }
});// emit rename channel
socket.emit('renameChannel', { id: 7, name: "new name channel" });This repository is created and maintained by the team and the community of Hexlet, an educational project. Read more about Hexlet.
See most active contributors on hexlet-friends.
1.1.8
2 years ago
