index.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. var send = document.getElementById('send');
  2. var nick = document.getElementById('nick');
  3. var message = document.getElementById('message');
  4. var counterMessage = 0;
  5. function jsonPost(url, data)
  6. {
  7. return new Promise((resolve, reject) => {
  8. var x = new XMLHttpRequest();
  9. x.onerror = () => reject(new Error('Post failed'))
  10. x.open("POST", url, true);
  11. x.send(JSON.stringify(data))
  12. x.onreadystatechange = () => {
  13. if (x.readyState == XMLHttpRequest.DONE && x.status == 200){
  14. resolve(JSON.parse(x.responseText));
  15. //console.log (x.responseText);
  16. }
  17. else if (x.status != 200){
  18. reject(new Error('Status is not 200'))
  19. }
  20. }
  21. })
  22. }
  23. send.onclick = () => {
  24. let objectMessage = {
  25. func: 'addMessage',
  26. nick: nick.value,
  27. message: message.value
  28. };
  29. //console.log (objectMessage);
  30. jsonPost("http://students.a-level.com.ua:10012", objectMessage, true);
  31. }
  32. setInterval(() => {
  33. let objectMessageGet = {
  34. func: "getMessages",
  35. messageId: counterMessage,
  36. }
  37. jsonPost("http://students.a-level.com.ua:10012", objectMessageGet, true)
  38. .then((result) => {
  39. // console.log(result)
  40. let divGet = document.getElementById('get');
  41. messageId = result.nextMessageId;
  42. console.log (messageId);
  43. result.data.forEach ((data, i) => {
  44. //for(i=0;i<result.data.length; i++){
  45. let newMessage = document.createElement('div');
  46. let nick = (result.data[i].nick == '') ? 'Anon' : result.data[i].nick;
  47. let message = (result.data[i].message == '') ? 'Я не умею копипастить в консоль, зато умею жать красную кнопку.' : result.data[i].message;
  48. let timestamp = (new Date (result.data[i].timestamp)).getHours()+':'+
  49. (new Date (result.data[i].timestamp)).getMinutes()+':'+
  50. (new Date (result.data[i].timestamp)).getSeconds();
  51. //console.log (result.data[i]);
  52. newMessage.innerHTML = `<b>${nick}</b> : ${message} <span class='pull-right'><small><mark>${timestamp}</small></mark></span>`;
  53. divGet.prepend(newMessage);
  54. });
  55. });
  56. },5000);