/[projects]/miscJava/Test3/WebContent/WebsockTest.html
ViewVC logotype

Contents of /miscJava/Test3/WebContent/WebsockTest.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2116 - (show annotations) (download) (as text)
Tue Feb 11 13:02:21 2014 UTC (10 years, 3 months ago) by torben
File MIME type: text/html
File size: 2305 byte(s)
Close socket nicely when leaving page
1 <html>
2 <head>
3 <title>Test3 :: Websocket Test</title>
4 <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
5
6 <script type="text/javascript">
7
8 var actTime = 0;
9 var socket = null;
10
11 function setActTime() {
12 actTime = new Date().getTime();
13 }
14
15 function append(str) {
16 var d = new Date();
17 var dateStr = "[" + d.toLocaleTimeString() + "] ";
18 var log = $("#log");
19 log.val( log.val() + dateStr + str + "\n")
20 }
21
22 function sendMessage() {
23 try {
24 var txt = $("#txt").val();
25 txt = $.trim(txt);
26 //append(txt);
27 if (txt == "")
28 return;
29
30 socket.send( "CHAT#" + txt);
31
32 $("#txt").val("");
33 setActTime();
34
35 } catch(exception) {
36 append(exception);
37 }
38 }
39
40 $( function() {
41 $("#log").val("");
42 append("starting app");
43
44 try {
45 var url = "ws://" + document.location.host + "/Test3/wstest";
46 append("Opening connection to " + url)
47
48 socket = new WebSocket(url);
49
50 socket.onopen = function() {
51 append("Socket has been opened!");
52 setActTime();
53 }
54
55 socket.onmessage = function(msg){
56 append(msg.data); //Awesome!
57 setActTime();
58 }
59
60 socket.onclose = function(){
61 var now = new Date().getTime();
62 var elapsed = now - actTime;
63 elapsed = elapsed / 1000;
64
65 append('Connection closed after ' + elapsed + ' seconds of inactivity');
66 }
67 } catch(exception){
68 append(exception);
69 }
70
71 $("#btn").click( function() {
72 sendMessage();
73 });
74
75 $("#btnNick").click( function() {
76 var nick = $("#nick").val();
77 nick = $.trim(nick);
78
79 if (nick == "") {
80 alert("Nick can not be empty");
81 return;
82 }
83
84 try {
85 socket.send( "NICK#" + nick);
86 } catch(exception) {
87 append(exception);
88 }
89
90 });
91
92 $(document).keypress(function(e) {
93 if(e.which == 13) {
94 sendMessage();
95 }
96 });
97
98 $(window).unload(function(){
99 socket.close();
100 });
101
102 });
103
104
105 </script>
106
107 </head>
108 <body>
109
110 <h2>Websocket test chat</h2>
111
112 <textarea rows="30" cols="160" id="log" readonly></textarea>
113 <br>
114 <input size=120 type="text" name="txt" id="txt">
115 <button id="btn">Submit</button><br><br>
116
117 <input size=20 type="text" name="nick" id="nick">
118 <button id="btnNick">Set Nick</button><br><br>
119
120 <br><br>
121 <font size="2">
122 If using websockets with haproxy look into <code>timeout tunnel</code> option.
123 </font>
124
125 </body>
126 </html>

  ViewVC Help
Powered by ViewVC 1.1.20