1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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 login = document.getElementById('inputName')
- let msg = document.getElementById('inputMsg')
- let send = document.getElementById('send')
- let chat = document.getElementById('chat')
- let messageId = 0;
- async function sendMessage(nick , message ){
- await jsonPost("http://students.a-level.com.ua:10012", {
- func: 'addMessage',
- nick: login.value,
- message: msg.value})
- }
- async function getMessages(){
- jsonPost("http://students.a-level.com.ua:10012", {
- func: "getMessages", messageId: 0
- }).then((a) => {
- showChat(a.data, chat)
- })
- }
- function showChat(data, container){
- let sortedData = data.sort((a, b) => b.timestamp - a.timestamp)
- for(let message of sortedData){
- let div = document.createElement('div')
- let spanName = document.createElement('b')
- let spanMsg = document.createElement('span')
- let spanTime = document.createElement('mark')
- let time = new Date(message.timestamp)
- container.appendChild(div)
- div.appendChild(spanName)
- div.appendChild(spanMsg)
- div.appendChild(spanTime)
- spanName.innerHTML = message.nick + ': '
- spanMsg.innerHTML = message.message + ' '
- spanTime.innerHTML = time.toGMTString()
- }
- }
- async function sendAndCheck(){
- sendMessage();
- getMessages();
- msg.value = ""
- }
- btn.onclick = () => {
- return sendAndCheck()
- }
- setInterval(getMessages, 5000)
|