1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- var nextMessageId = 0;
- var previousParagraphToInsertNext;
- function jsonPost(url, data) {
- return new Promise((resolve, reject) => {
- var x = new XMLHttpRequest();
- x.onerror = () => reject(new Error('jsonPost failed'));
- 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'))
- }
- }
- })
- }
- function getFullTime(timestamp) {
- var date = new Date(timestamp*1000);
- var hours = date.getHours();
- var minutes = "0" + date.getMinutes();
- var seconds = "0" + date.getSeconds();
- var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
- return formattedTime;
- }
- async function getMessages(){
- var data = {func: 'getMessages', messageId: nextMessageId};
- var messages = await jsonPost("server.php", data);
- for (let msgIndex in messages.data){
- let par = chat.insertBefore(document.createElement('p'), previousParagraphToInsertNext);
- par.innerHTML = `
- (${getFullTime(messages.data[msgIndex].timestamp)})
- <strong>${messages.data[msgIndex].nick}:</strong>
- ${messages.data[msgIndex].message}
- `;
- previousParagraphToInsertNext = par;
- }
- nextMessageId = messages.nextMessageId;
- }
- send.onclick = async event => {
- var a = await jsonPost("server.php", {func: 'addMessage', nick: nick.value, message: message.value});
- getMessages();
- }
- setInterval(() => getMessages(), 500);
|