123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- let messageId = 0;
- send.onclick = () => {
- jsonPost('http://students.a-level.com.ua:10012', {
- func: 'addMessage',
- nick: nick.value,
- message: message.value,
- });
- };
- function jsonPost(url, data) {
- return new Promise((resolve, reject) => {
- var 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'));
- }
- };
- });
- }
- setInterval(() => {
- jsonPost('http://students.a-level.com.ua:10012', {
- func: 'getMessages',
- messageId: messageId,
- }).then((result) => {
- for (let key in result.data) {
- let div = document.createElement('div');
- div.textContent = `${result.data[key].nick}:${result.data[key].message}`;
- let time = document.createElement('span');
- let timeOfSending = new Date(result.data[key].timestamp);
- let minutes = '0' + timeOfSending.getMinutes();
- let seconds = '0' + timeOfSending.getSeconds();
- time.textContent = `Date: ${timeOfSending.getDate()}/${timeOfSending.getMonth() + 1}/${timeOfSending.getFullYear()}, time: ${timeOfSending.getHours()}:${minutes.substr(-2)}:${seconds.substr(-2)}`;
- chat.prepend(div);
- chat.prepend(time);
- }
- messageId = result.nextMessageId;
- });
- }, 3000);
- {
- let messageId = 0;
- send.onclick = async function sendAndCheck() {
- await Promise.all([sendMessage('http://students.a-level.com.ua:10012', {
- func: 'addMessage',
- nick: nick.value,
- message: message.value,
- }), getMessages()]);
- };
- async function sendMessage(url, data) {
- const settings = {
- method: 'Post',
- mode: 'cors',
- cahe: 'no-cache',
- credentials: 'same-origin',
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- },
- redirect: 'follow',
- referrerPolicy: 'no-referrer',
- body: JSON.stringify(data),
- };
- try {
- let response = await fetch(url, settings);
- return response.json();
- } catch (error) {
- return console.log(error);
- }
- }
- }
- async function getMessages() {
- await sendMessage('http://students.a-level.com.ua:10012', {
- func: 'getMessages',
- messageId: messageId,
- }).then((resAll) => {
- for (let key in resAll.data) {
- let span = dociment.createElement('div');
- span.className = 'time';
- span.textContent = `${resAll.data[key].nick}: ${resAll.data[key].messge}`;
- let time = document.createElement('span');
- time.className = 'time';
- let timeOfSending = new Date(resAll.data[key].timestamp);
- let minutes = '0' + timeOfSending.getMinutes();
- time.textContent = `${timeOfSending.getDate()}.${timeOfSending.getMonth() + 1}.${timeOfSending.getFullYear()} ${timeOfSending.getHours()}:${minutes.substr(-2)}`;
- chat.prepend(time);
- chat.prepend(span);
- chat.prepend(document.createElement('hr'));
- }
- messageId = resAll.nextMessageId;
- console.log(messageId);
- });
- }
- (function checkLoop() {
- setInterval(async () => {
- await getMessages();
- }, 3000);
- })();
|