-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
126 lines (113 loc) · 4.24 KB
/
Copy pathindex.html
File metadata and controls
126 lines (113 loc) · 4.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<html>
<head>
<title>
Node.js Chatduru
</title>
<!-- Latest compiled and minified CSS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js" integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<style>
#content{
display: none;
}
#chatContent{
float: left;
}
#chat{
position:relative;
width:100%;
float:left;
min-height:100;
height: 90%;
overflow: auto;
}
</style>
</head>
<body>
<div class="container">
<div class="page-header">
<h1>Node.js Chat <small>developed by <a href="https://geekytheory.com">Geeky Theory</a></small></h1>
</div>
<div class="input-group" style="width::300px;text-align:center;margin:0 auto;" id="nickContainer">
<input type="text" id="nickname" class="form-control input-lg" placeholder="Enter your username"/>
<span class="input-group-btn">
<button class="btn btn-lg btn-primary" type="submit" id="setNick">OK</button>
</span>
</div>
<div class="alert fade in alert-danger alert-dismissable" data-dismiss="alert" id="login-error" style="display:none">
<button type="button" class="close" id="closeAlert" data-dismiss="alert">x</button>
That username is already taken. Try again.
</div>
<div class='row' id='content' style='height: 70%;'>
<div class='col-md-2'></div>
<div id='chatContent' class='col-md-6'>
<div class='panel panel-success'>
<div class='panel-heading'>
CHAT
</div>
<div id='chat' class='panel-body'></div>
</div>
<div>
<form id="sendMessage" class="input-group" style="text-align:center; margin:0 auto;">
<input id="message" class="form-control input-lg" type="text">
<span class="input-group-btn">
<button class="btn btn-lg btn-primary" type="submit">Send</button>
</span>
</form>
</div>
</div>
<div class="col-md-2">
<div class="panel panel-info">
<div class="panel-heading">
USERS
</div>
<div class="panel-body" id="users"></div>
</div>
</div>
</div>
<script src = "/socket.io/socket.io.js"></script>
<script type= "text/javascript">
$(function(){
var socket = io.connect();
var messageForm = $("#sendMessage");
var message = $("#message");
var chat = $("#chat");
var nickname = $("#nickname");
var setNick = $("#setNick");
var users = $("#users");
setNick.click(function(e){
e.preventDefault();
socket.emit('newUser',nickname.val(),function(data)
{
if(data){
$("#nickContaniner").hide();
$("#content").show();
}
else{
$("#login-error").show();
}
});
});
messageForm.submit(function(e){
e.preventDefault();
if(message.val()!="") socket.emit("sendMessage",message.val());
message.val('');
});
socket.on('newMessage',function(data){
chat.append(data.nick+' - '+data.msg+"<br>");
});
socket.on('usernames', function(data){
var usernamesString = "";
for(var username in data){
usernamesString += username + "<br/>";
}
users.html(usernamesString);
});
});
</script>
</body>
</html>