12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- function jsonPost(url, data) {
- return new Promise((resolve, reject) => {
- const x = new XMLHttpRequest();
- x.onerror = () => reject(new Error('jsonPost failed'))
- //x.setRequestHeader('Content-Type', 'application/json');
- x.open("POST", url, true);
- x.send(JSON.stringify(data))
- x.onreadystatechange = () => {
- if (x.readyState === XMLHttpRequest.DONE && x.status === 200){
- resolve(JSON.parse(x.responseText))
- } else if (x.status !== 200){
- reject(new Error('status is not 200'))
- }
- }
- });
- }
- const url = "http://students.a-level.com.ua:10012";
- let nextId = 0;
- sendButton.addEventListener('click', () => {
- let nickValue = nickInput.value;
- let messageValue = messageInput.value;
- const addZero = data => data < 10 ? `0${data}` : data;
- const buildDate = date => `${date.getDate()}/${date.getMonth()+1}/${date.getFullYear()} ${addZero(date.getHours())}:${addZero(date.getMinutes())}:${addZero(date.getSeconds())}`;
- const buildMessage = (nick, message, time) => {
- return `<p>nick - ${nick}, message - ${message}, date - ${buildDate(new Date(time))}</p>`;
- }
- jsonPost(url, {func: 'addMessage', nick: nickValue, message: messageValue});
- let messagesArray = jsonPost(url, {func: 'getMessages', messageId: nextId});
- messagesArray.then(messages => {
- for (const message of messages.data) {
- chatMessages.insertAdjacentHTML('afterbegin', buildMessage(message.nick, message.message, message.timestamp));
- }
- nextId = messages.nextMessageId;
- });
- });
|