redesigned websocket messages

sends messages in JSON now
posts are more responsive
This commit is contained in:
Mystikfluu 2022-07-10 16:37:23 +02:00
parent 83655ad6d1
commit 61eb7a6ee2
2 changed files with 31 additions and 6 deletions

View File

@ -8,14 +8,24 @@ const wss_URI = wss_server + ":" + wss_port
var reply_id = 0
let socket = new WebSocket(wss_URI);
socket.addEventListener("message", function (event) {
socket.addEventListener("message", async function (event) {
if(wss_server == event.origin) {
let data = event.data;
let ds = data.split(" ")
let message = ds[0]
let ds = JSON.parse(data)
let message = ds.message
let post = ds.data
let username = post.post_user_name
if(message == "new_post") {
main()
if(user["username"]!=ds[1])mainNoti(ds[1])
await createPost(decodeURIComponent(item.post_user_name),decodeURIComponent(item.post_text),item.post_time,item.post_special_text,highest_id+1,item.post_from_bot,item.post_reply_id)
if(user["username"]!=username)mainNoti(username)
let highest_known_posts = await (await fetch("/api/getPostsLowerThan?id="+(highest_id+28))).json()
for (let i = 0; i < highest_known_posts.length; i++) {
if(document.getElementById(highest_known_posts[i].post_id) == undefined) {
main()
return;
}
}
}
}
})

View File

@ -667,8 +667,23 @@ router.post("/api/post", async function(req,res) {
con.query(sql, values, function (err, result) {
if (err) throw err;
if(req.body.receiver == "everyone") {
let post_obj = {
post_user_name: encodeURIComponent(res.locals.username),
post_text: req.body.message,
post_time: Date.now(),
post_special_text: "",
post_receiver_name: "everyone",
post_from_bot: res.locals.isbot,
post_reply_id: reply_id
}
let message = {
message: "new_post",
data: post_obj
}
let messagestr = JSON.stringify(message)
wss.clients.forEach(function(ws) {
ws.send(`new_post ${res.locals.username} ${req.body.message}`)
ws.send(messagestr)
});
}
res.json({"success":"successfully posted message"})