add main-site

This commit is contained in:
GZod01 2023-03-25 10:29:34 +01:00
parent 0bcf58c844
commit 0a3a77a9ff
52 changed files with 11206 additions and 0 deletions

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Chat App with Websocket</title>
<style>
.clientinfos{
background-color: darkgrey;
}
.clientmessages{
background-color: lightblue;
border: 1px;
}
</style>
</head>
<body>
<div class="clientinfos">
<button id="connect">connect</button>
</div>
<div class=clientmessages id="clientmessages"></div>
<div class="clientsend">
<input type="text" id="messageinput">
<button id="sendbutton">Send</button>
</div>
<script src="client.js"></script>
</body>
</html>

54
main-site/chat/client.js Normal file
View file

@ -0,0 +1,54 @@
if (sessionStorage.getItem('serveraddr')==null){
let addr = prompt('server address (ws or wss): ')
const socket = new WebSocket(addr);
sessionStorage.setItem('serveraddr',addr)
}
else if (sessionStorage.getItem('serveraddr')!=null){
const socket = new WebSocket(sessionStorage.getItem('serveraddr'))
}
else{alert('error')}
socket.addEventListener('message', function (event) {
e=JSON.parse(event)
for(let i = 0; i < length(e); i++){
let m= e[i]
let d = document.createElement('div')
d.className = 'message'
let u = document.createElement('div')
u.innerText = m["username"]
u.className= 'messageusername'
let c = document.createElement('div')
c.innerText = m["content"]
c.className = 'messagecontent'
let h = document.createElement('div')
h.innerText= m['date']
h.className = 'messagedate'
d.appendChild(u)
d.appendChild(c)
d.appendChild(h)
document.getElementById('clientmessages').appendChild(d)
}
});
function sendtoserver(){
let user = sessionStorage.getItem('username')
if(user == null){alert('you have to be connected for send message, click on the "connect" button')}
else{
let message = document.getElementById('messageinput')
let today = new Date();
let date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
let time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
let dateTime = date+' '+time;
let tosend={
'username': `${user}`,
'content':`${message}`,
'date': `${dateTime}`,
}
let strtosend = JSON.stringify(tosend)
socket.send(strtosend)
}
}
function toconnect(){
let usrname = prompt('your username: ')
sessionStorage.setItem('username',usrname)
}
document.getElementById('sendbutton').addEventListener('click',sendtoserver)
document.getElementById('connect').addEventListener('click',toconnect)

38
main-site/chat/server.py Normal file
View file

@ -0,0 +1,38 @@
"""
message templates:
{
"name":username,
"content":content,
"date":date,
}
"""
import asyncio;
import json;
import websockets;
dataslist = []
async def handler(websocket, path):
global dataslist
data = await websocket.recv()
try:
data = json.dumps(data)
except TypeError:
await websocket.send('TypeError')
await websocket.send(str(dataslist))
dataslist.append(data)
start_server = websockets.serve(handler, "0.0.0.0", 8000)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()