123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- async function jsonPost(url, data) {
- let response = await fetch(url, {
- method: 'POST',
- body: JSON.stringify(data),
- })
- if (response.status == 200) {
- return response.json()
- } else if (response.status != 200) {
- return new Error('status is not 200')
- }
- }
- function addMessage(messageObj) {
- message = messageTemplate.content.cloneNode(true)
- message.querySelector('.nickname').textContent = messageObj.nick
- message.querySelector('.message-text').textContent = messageObj.message
- message.querySelector('.time').textContent = (new Date(messageObj.timestamp)).toString().slice(4, 24)
- messagesArea.append(message)
- }
- let delay = (ms) => new Promise((fulfill) => setTimeout(() => fulfill(ms), ms))
- async function sendMessage(nick, message) {
- if(nick !== '' && message !== '') {
- await jsonPost("http://students.a-level.com.ua:10012", {func: 'addMessage', nick, message})
- }
- }
- async function getMessages(messageId) {
- let {data, nextMessageId} = await jsonPost("http://students.a-level.com.ua:10012", {func: "getMessages", messageId})
- for (let message of data) addMessage(message)
- savedId = nextMessageId
- }
- async function sendAndCheck() {
- await sendMessage(nickname.value, messageText.value)
- messageText.value = ''
- await getMessages(savedId)
- }
- async function checkLoop() {
- while (true) {
- await delay(5000)
- await getMessages(savedId)
- }
- }
- let savedId = 0
- getMessages(savedId)
- send.onclick = sendAndCheck
- checkLoop()
|