add main-site
This commit is contained in:
parent
0bcf58c844
commit
0a3a77a9ff
52 changed files with 11206 additions and 0 deletions
29
main-site/chat/client.html
Normal file
29
main-site/chat/client.html
Normal 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
54
main-site/chat/client.js
Normal 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
38
main-site/chat/server.py
Normal 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()
|
||||
Reference in a new issue