index.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. var send = document.getElementById('send');
  20. var nick = document.getElementById('nick');
  21. var mes = document.getElementById('message');
  22. send.onclick = function(){
  23. var obj = {
  24. func: "addMessage",
  25. nick: nick.value,
  26. message: mes.value,
  27. }
  28. jsonPost("http://students.a-level.com.ua:10012", obj);
  29. }
  30. var mesInd = 0;
  31. var smiles = {
  32. ':)' : 'http://www.kolobok.us/smiles/light_skin/diablo.gif',
  33. ';)' : 'http://www.kolobok.us/smiles/light_skin/hunter.gif',
  34. ':(' : 'http://www.kolobok.us/smiles/light_skin/dash3.gif'
  35. }
  36. var interval = setInterval(() => {
  37. var obj2 = {
  38. func: "getMessages",
  39. messageId: mesInd,
  40. }
  41. jsonPost("http://students.a-level.com.ua:10012", obj2)
  42. .then((res) => {
  43. console.log(res)
  44. var divG = document.getElementById('get');
  45. mesInd = res.nextMessageId;
  46. for(i=0;i<res.data.length; i++){
  47. // messages.push(key);
  48. var newMes = document.createElement('div');
  49. var nick = res.data[i].nick;
  50. var message = res.data[i].message;
  51. var img = res.data[i].img;
  52. // var img = `<img src="/^(https?:\/\/)?([\w\.]+)\.([a-z]{2,6}\.?)(\/[\w\.]*)*\/?$/'>`
  53. for (let smile in smiles) {
  54. message = message.replace(smile, `<img src="${smiles[smile]}">`);
  55. }
  56. newMes.innerHTML = `${nick} : ${message} :${img}`;
  57. divG.prepend(newMes);
  58. }
  59. })
  60. },1000);
  61. // asynk await