main.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. function jsonPost(url, data)
  2. {
  3. return new Promise((resolve, reject) => {
  4. var x = new XMLHttpRequest();
  5. x.onerror = () => reject(new Error('jsonPost failed'))
  6. //x.setRequestHeader('Content-Type', 'application/json');
  7. x.open("POST", url, true);
  8. x.send(JSON.stringify(data))
  9. x.onreadystatechange = () => {
  10. if (x.readyState == XMLHttpRequest.DONE && x.status == 200){
  11. resolve(JSON.parse(x.responseText))
  12. }
  13. else if (x.status != 200){
  14. reject(new Error('status is not 200'))
  15. }
  16. }
  17. })
  18. }
  19. let sendBtn = document.getElementById('sendButton')
  20. sendBtn.onclick = function sendMsg () {
  21. let nick = document.getElementById('nickInput').value
  22. let msg = document.getElementById('msgInput').value
  23. jsonPost("http://students.a-level.com.ua:10012", {func: 'addMessage', nick: nick, message: msg })
  24. }
  25. sendBtn.innerHTML = "Send"
  26. let nickInput = document.getElementById('nickInput')
  27. let msgInput = document.getElementById('msgInput')
  28. nickInput.style.width = '99.5%'
  29. msgInput.style.width = '99.5%'
  30. sendBtn.style.width = '100%'
  31. nickInput.style.height = '40px'
  32. msgInput.style.height = '40px'
  33. msgInput.style.marginTop = '20px'
  34. sendBtn.style.marginTop = '20px'
  35. sendBtn.style.height = '40px'
  36. nickInput.style.fontSize = '20px'
  37. msgInput.style.fontSize = '20px'
  38. sendBtn.style.fontSize = '20px'
  39. function addMsg () {
  40. let startMsg = 0;
  41. setInterval(function(){
  42. jsonPost("http://students.a-level.com.ua:10012", {func: "getMessages", messageId: startMsg}).then (result => {console.log(result.data)
  43. for(startMsg in result.data) {
  44. let chat = document.getElementById('chat')
  45. let divMessage = document.createElement('div')
  46. divMessage.style.border = '1px solid black'
  47. divMessage.style.borderRadius = '10px'
  48. divMessage.style.marginTop = '10px'
  49. divMessage.style.backgroundColor = '#1E90FF'
  50. divMessage.style.color = 'white'
  51. let pMsg = document.createElement('p')
  52. pMsg.innerHTML = result.data[startMsg].nick + ':' + ' ' + result.data[startMsg].message
  53. pMsg.style.marginLeft = '20px'
  54. pMsg.style.fontSize = '30px'
  55. let time = document.createElement('p')
  56. time.innerHTML = `${new Date(result.data[startMsg].timestamp).toLocaleString()}`
  57. time.style.marginLeft = '20px'
  58. divMessage.append(pMsg)
  59. divMessage.append(time)
  60. chat.prepend(divMessage)
  61. }
  62. startMsg = result.nextMessageId})
  63. },2000)
  64. }
  65. addMsg()