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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2113 - (hide annotations) (download) (as text)
Tue Feb 11 12:44:13 2014 UTC (10 years, 3 months ago) by torben
File MIME type: text/html
File size: 2128 byte(s)
Make it feel a bit more like a real chat app
1 torben 2106 <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 torben 2109 var actTime = 0;
9     var socket = null;
10    
11     function setActTime() {
12     actTime = new Date().getTime();
13     }
14    
15 torben 2106 function append(str) {
16 torben 2112 var d = new Date();
17     var dateStr = "[" + d.toLocaleTimeString() + "] ";
18 torben 2106 var log = $("#log");
19 torben 2112 log.val( log.val() + dateStr + str + "\n")
20 torben 2106 }
21    
22 torben 2109 function sendMessage() {
23     try {
24     var txt = $("#txt").val();
25 torben 2113 //append(txt);
26 torben 2109
27 torben 2113 socket.send( "CHAT#" + txt);
28 torben 2109
29     $("#txt").val("");
30     setActTime();
31    
32     } catch(exception) {
33     append(exception);
34     }
35     }
36    
37 torben 2106 $( function() {
38     $("#log").val("");
39     append("starting app");
40    
41     try {
42     var url = "ws://" + document.location.host + "/Test3/wstest";
43     append("Opening connection to " + url)
44    
45 torben 2109 socket = new WebSocket(url);
46 torben 2106
47     socket.onopen = function() {
48     append("Socket has been opened!");
49 torben 2109 setActTime();
50 torben 2106 }
51    
52     socket.onmessage = function(msg){
53 torben 2107 append(msg.data); //Awesome!
54 torben 2109 setActTime();
55 torben 2106 }
56    
57     socket.onclose = function(){
58 torben 2109 var now = new Date().getTime();
59     var elapsed = now - actTime;
60 torben 2110 elapsed = elapsed / 1000;
61 torben 2109
62     append('Connection closed after ' + elapsed + ' seconds of inactivity');
63 torben 2106 }
64     } catch(exception){
65     append(exception);
66     }
67    
68     $("#btn").click( function() {
69 torben 2109 sendMessage();
70 torben 2106 });
71    
72 torben 2113 $("#btnNick").click( function() {
73     var nick = $("#nick").val();
74     nick = $.trim(nick);
75    
76     try {
77     socket.send( "NICK#" + nick);
78     } catch(exception) {
79     append(exception);
80     }
81    
82     });
83    
84 torben 2107 $(document).keypress(function(e) {
85     if(e.which == 13) {
86 torben 2109 sendMessage();
87 torben 2107 }
88     });
89    
90 torben 2106 });
91 torben 2107
92    
93 torben 2106 </script>
94    
95     </head>
96     <body>
97    
98     <h2>Websocket test chat</h2>
99    
100 torben 2107 <textarea rows="30" cols="160" id="log" readonly></textarea>
101 torben 2106 <br>
102     <input size=120 type="text" name="txt" id="txt">
103 torben 2113 <button id="btn">Submit</button><br><br>
104 torben 2106
105 torben 2113 <input size=20 type="text" name="nick" id="nick">
106     <button id="btnNick">Set Nick</button><br><br>
107    
108 torben 2111 <br><br>
109     <font size="2">
110     If using websockets with haproxy look into <code>timeout tunnel</code> option.
111     </font>
112 torben 2106
113     </body>
114 torben 2110 </html>

  ViewVC Help
Powered by ViewVC 1.1.20