golang基于websocket实现的简易聊天室程序
golang的template包很好用,做一些复杂的文本格式生成太有帮助了,生成网页也是很不错的,使用起来非常方便
golang websocket 聊天室
本文实例讲述了go语言template用法。分享给大家供大家参考。具体分析如下:
package main
import (
"fmt"
"bufio"
"io"
"os"
"code.google.com/p/go.net/websocket"
)
func Command(ws *websocket.Conn) {
r := bufio.NewReader(os.Stdin)
w := bufio.NewWriter(ws)
for {
data, err := r.ReadBytes('n')
if err != nil {
panic(err)
}
_, err = w.Write(data)
if err != nil {
panic(err)
}
w.Flush()
fmt.Printf("Myt> ")
}
}
func main() {
fmt.Printf(`Welcome chatroom!
author: dotcoo zhao
url: http://www.dotcoo.com/golang-websocket-chatroom
`)
origin := "http://127.0.0.1:6611/"
url := "ws://127.0.0.1:6611/chatroom"
ws, err := websocket.Dial(url, "", origin)
if err != nil {
panic(err)
}
defer ws.Close()
r := bufio.NewReader(ws)
//w := bufio.NewWriter(os.Stdout)
go Command(ws)
for {
data, err := r.ReadBytes('n')
美洲杯波胆, if err == io.EOF {
fmt.Printf("disconnectedn")
os.Exit(0)
}
if err != nil {
panic(err)
}
fmt.Printf("r%sMyt> ", data)
}
}
package main
import (
"fmt"
"os"
"text/template"
)
type Latlng struct {
Lat float32
Lng float32
}
func (latlng Latlng) String() string {
return fmt.Sprintf("%g/%g", latlng.Lat, latlng.Lng)
}
func main() {
data := []template.FuncMap{}
data = append(data, template.FuncMap{"name":"dotcoo1",
"url":"//www.jb51.net/", "latlng":Latlng{24.1, 135.1}})
data = append(data, template.FuncMap{"name":"dotcoo2",
"url":"//www.jb51.net/", "latlng":Latlng{24.2, 135.2}})
data = append(data, template.FuncMap{"name":"dotcoo2",
"url":"//www.jb51.net/", "latlng":Latlng{24.3, 135.3}})
datatpl := `{{range .}}{{template "user" .}}{{end}}`
usertpl := `{{define "user"}}name:{{.name}}, url:{{.url}},
latlng:{{.latlng}} lat:{{.latlng.Lat}} lng:{{.latlng.Lng}}
{{end}}`
tpl, err := template.New("data").Parse(datatpl)
if err != nil {
panic(err)
}
_, err = tpl.Parse(usertpl)
if err != nil {
panic(err)
}
err = tpl.Execute(os.Stdout, data)
if err != nil {
panic(err)
}
println()
}
golang websocket 客户端
希望本文所述对大家的Go语言程序设计有所帮助。
go get code.google.com/p/go.net/websocket
复制代码 代码如下:
本文实例讲述了golang基于websocket实现的简易聊天室。分享给大家供大家参考,具体如下:
您可能感兴趣的文章:
- Go语言多值替换的HTML模板实例分析
- golang解析xml的方法
- golang简单获取上传文件大小的实现代码
- golang的HTTP基本认证机制实例详解
- golang简单tls协议用法完整示例
- golang网络socket粘包问题的解决方法
- golang判断chan channel是否关闭的方法
- golang模板template自定义函数用法示例
复制代码 代码如下:
希望本文所述对大家Go语言程序设计有所帮助。
文档 : http://go.pkgdoc.org/code.google.com/p/go.net/websocket
简陋了些,但是基本功能都有了.
本文由美洲杯波胆发布于计算机教程,转载请注明出处:golang基于websocket实现的简易聊天室程序
关键词: