123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- 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'))
- }
- }
- })
- }
- let sendBtn = document.getElementById('sendButton')
- sendBtn.innerHTML = "Send"
- let nickInput = document.getElementById('nickInput')
- let msgInput = document.getElementById('msgInput')
- nickInput.style.width = '99.5%'
- msgInput.style.width = '99.5%'
- sendBtn.style.width = '100%'
- nickInput.style.height = '40px'
- msgInput.style.height = '40px'
- msgInput.style.marginTop = '20px'
- sendBtn.style.marginTop = '20px'
- sendBtn.style.height = '40px'
- nickInput.style.fontSize = '20px'
- msgInput.style.fontSize = '20px'
- sendBtn.style.fontSize = '20px'
- // default
- // sendBtn.onclick = function sendMsg () {
- // let nick = document.getElementById('nickInput').value
- // let msg = document.getElementById('msgInput').value
- // jsonPost("http://students.a-level.com.ua:10012", {func: 'addMessage', nick: nick, message: msg })
- // document.getElementById('nickInput').value = ''
- // document.getElementById('msgInput').value = ''
- // }
- // function addMsg () {
- // let startMsg = 0;
- // setInterval(function(){
- // jsonPost("http://students.a-level.com.ua:10012", {func: "getMessages", messageId: startMsg}).then (result => {console.log(result.data)
- // for(startMsg in result.data) {
- // let chat = document.getElementById('chat')
- // let divMessage = document.createElement('div')
- // divMessage.style.border = '1px solid black'
- // divMessage.style.borderRadius = '10px'
- // divMessage.style.marginTop = '10px'
- // divMessage.style.backgroundColor = '#1E90FF'
- // divMessage.style.color = 'white'
- // let pMsg = document.createElement('p')
- // pMsg.innerHTML = result.data[startMsg].nick + ':' + ' ' + result.data[startMsg].message
- // pMsg.style.marginLeft = '20px'
- // pMsg.style.fontSize = '30px'
- // let time = document.createElement('p')
- // time.innerHTML = `${new Date(result.data[startMsg].timestamp).toLocaleString()}`
- // time.style.marginLeft = '20px'
- // divMessage.append(pMsg)
- // divMessage.append(time)
- // chat.prepend(divMessage)
- // }
- // startMsg = result.nextMessageId})
- // },2000)
- // }
- // addMsg()
- //async
- function delay(ms) {
- return new Promise(resolve => setTimeout(resolve, ms));
- }
- let nickVal = nickInput.value
- let msgVal = msgInput.value
-
- async function sendMessage(nick,message) {
- jsonPost("http://students.a-level.com.ua:10012", {func: 'addMessage', nick: nickInput.value, message: msgInput.value })
- document.getElementById('nickInput').value = ''
- document.getElementById('msgInput').value = ''
- }
- async function getMessages() {
- let startMsg = 0
- jsonPost("http://students.a-level.com.ua:10012", {func: "getMessages", messageId: startMsg})
- .then(result=>{console.log(result.data)
- for(startMsg in result.data){
- let chat = document.getElementById('chat')
- let divMessage = document.createElement('div')
- divMessage.style.border = '1px solid black'
- divMessage.style.borderRadius = '10px'
- divMessage.style.marginTop = '10px'
- divMessage.style.backgroundColor = '#1E90FF'
- divMessage.style.color = 'white'
- let pMsg = document.createElement('p')
- pMsg.innerHTML = result.data[startMsg].nick + ':' + ' ' + result.data[startMsg].message
- pMsg.style.marginLeft = '20px'
- pMsg.style.fontSize = '30px'
- let time = document.createElement('p')
- time.innerHTML = `${new Date(result.data[startMsg].timestamp).toLocaleString()}`
- time.style.marginLeft = '20px'
- divMessage.append(pMsg)
- divMessage.append(time)
- chat.prepend(divMessage)
- }
- })
- }
-
- async function sendAndCheck(){
- await sendMessage(nickVal,msgVal)
- await getMessages()
- }
- sendBtn.onclick = () => {
- sendAndCheck()
- }
- async function checkLoop (){
- delay(3000)
- getMessages()
- }
- checkLoop()
|