Skip to content

Commit 5ade364

Browse files
committed
Improve examples
- Remove jQuery dependency in command example. - Fix auto scroll on new content in chat and command example. - Update chat and command example to use a static HTML file.
1 parent 804cb60 commit 5ade364

File tree

4 files changed

+37
-37
lines changed

4 files changed

+37
-37
lines changed

examples/chat/home.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
var log = document.getElementById("log");
1010

1111
function appendLog(item) {
12-
var doScroll = log.scrollTop === log.scrollHeight - log.clientHeight;
12+
var doScroll = log.scrollTop > log.scrollHeight - log.clientHeight - 1;
1313
log.appendChild(item);
1414
if (doScroll) {
1515
log.scrollTop = log.scrollHeight - log.clientHeight;
@@ -29,7 +29,7 @@
2929
};
3030

3131
if (window["WebSocket"]) {
32-
conn = new WebSocket("ws://{{$}}/ws");
32+
conn = new WebSocket("ws://" + document.location.host + "/ws");
3333
conn.onclose = function (evt) {
3434
var item = document.createElement("div");
3535
item.innerHTML = "<b>Connection closed.</b>";

examples/chat/main.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@ package main
66

77
import (
88
"flag"
9-
"html/template"
109
"log"
1110
"net/http"
1211
)
1312

1413
var addr = flag.String("addr", ":8080", "http service address")
15-
var homeTemplate = template.Must(template.ParseFiles("home.html"))
1614

1715
func serveHome(w http.ResponseWriter, r *http.Request) {
1816
log.Println(r.URL)
@@ -24,8 +22,7 @@ func serveHome(w http.ResponseWriter, r *http.Request) {
2422
http.Error(w, "Method not allowed", 405)
2523
return
2624
}
27-
w.Header().Set("Content-Type", "text/html; charset=utf-8")
28-
homeTemplate.Execute(w, r.Host)
25+
http.ServeFile(w, r, "home.html")
2926
}
3027

3128
func main() {

examples/command/home.html

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,53 @@
22
<html lang="en">
33
<head>
44
<title>Command Example</title>
5-
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
65
<script type="text/javascript">
7-
$(function() {
8-
6+
window.onload = function () {
97
var conn;
10-
var msg = $("#msg");
11-
var log = $("#log");
8+
var msg = document.getElementById("msg");
9+
var log = document.getElementById("log");
1210

13-
function appendLog(msg) {
14-
var d = log[0]
15-
var doScroll = d.scrollTop == d.scrollHeight - d.clientHeight;
16-
msg.appendTo(log)
11+
function appendLog(item) {
12+
var doScroll = log.scrollTop > log.scrollHeight - log.clientHeight - 1;
13+
log.appendChild(item);
1714
if (doScroll) {
18-
d.scrollTop = d.scrollHeight - d.clientHeight;
15+
log.scrollTop = log.scrollHeight - log.clientHeight;
1916
}
2017
}
2118

22-
$("#form").submit(function() {
19+
document.getElementById("form").onsubmit = function () {
2320
if (!conn) {
2421
return false;
2522
}
26-
if (!msg.val()) {
23+
if (!msg.value) {
2724
return false;
2825
}
29-
conn.send(msg.val());
30-
msg.val("");
31-
return false
32-
});
26+
conn.send(msg.value);
27+
msg.value = "";
28+
return false;
29+
};
3330

3431
if (window["WebSocket"]) {
35-
conn = new WebSocket("ws://{{$}}/ws");
36-
conn.onclose = function(evt) {
37-
appendLog($("<div><b>Connection closed.</b></div>"))
38-
}
39-
conn.onmessage = function(evt) {
40-
appendLog($("<pre/>").text(evt.data))
41-
}
32+
conn = new WebSocket("ws://" + document.location.host + "/ws");
33+
conn.onclose = function (evt) {
34+
var item = document.createElement("div");
35+
item.innerHTML = "<b>Connection closed.</b>";
36+
appendLog(item);
37+
};
38+
conn.onmessage = function (evt) {
39+
var messages = evt.data.split('\n');
40+
for (var i = 0; i < messages.length; i++) {
41+
var item = document.createElement("div");
42+
item.innerText = messages[i];
43+
appendLog(item);
44+
}
45+
};
4246
} else {
43-
appendLog($("<div><b>Your browser does not support WebSockets.</b></div>"))
47+
var item = document.createElement("div");
48+
item.innerHTML = "<b>Your browser does not support WebSockets.</b>";
49+
appendLog(item);
4450
}
45-
});
51+
};
4652
</script>
4753
<style type="text/css">
4854
html {

examples/command/main.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ package main
77
import (
88
"bufio"
99
"flag"
10-
"html/template"
1110
"io"
1211
"log"
1312
"net/http"
@@ -19,9 +18,8 @@ import (
1918
)
2019

2120
var (
22-
addr = flag.String("addr", "127.0.0.1:8080", "http service address")
23-
cmdPath string
24-
homeTempl = template.Must(template.ParseFiles("home.html"))
21+
addr = flag.String("addr", "127.0.0.1:8080", "http service address")
22+
cmdPath string
2523
)
2624

2725
const (
@@ -176,8 +174,7 @@ func serveHome(w http.ResponseWriter, r *http.Request) {
176174
http.Error(w, "Method not allowed", 405)
177175
return
178176
}
179-
w.Header().Set("Content-Type", "text/html; charset=utf-8")
180-
homeTempl.Execute(w, r.Host)
177+
http.ServeFile(w, r, "home.html")
181178
}
182179

183180
func main() {

0 commit comments

Comments
 (0)