本文整理汇总了Golang中github.com/igm/sockjs-go/sockjs.Conn类的典型用法代码示例。如果您正苦于以下问题:Golang Conn类的具体用法?Golang Conn怎么用?Golang Conn使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Conn类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: sockStartStopHandler
func sockStartStopHandler(conn sockjs.Conn) {
log.Println("start/stop session")
ticker := time.NewTicker(time.Second)
open := true
for {
if msg, err := conn.ReadMessage(); err != nil {
log.Println("getting err: ", err)
ticker.Stop()
open = false
return
} else {
if string(msg) == `"start"` {
if !open {
ticker = time.NewTicker(time.Second)
open = true
}
go func() {
for t := range ticker.C {
conn.WriteMessage([]byte(fmt.Sprintf(`"%d"`, t.Second())))
}
}()
} else if string(msg) == `"stop"` {
ticker.Stop()
open = false
}
}
}
}
开发者ID:reinbach,项目名称:sockjs-go-example,代码行数:30,代码来源:server.go
示例2: SockJSHandler
func (s *GenericStreamer) SockJSHandler(crudpath string, session sockjs.Conn) {
localChan := make(chan *Bundle)
s.bundleChannels = append(s.bundleChannels, localChan)
if s.debug {
log.Println("Streams:", len(s.bundleChannels), "- open", crudpath)
}
go func() {
for {
bundle, ok := <-localChan
if !ok { // Chanel was closed
break
}
if crudpath != bundle.Val.CRUDPrefix() {
continue
}
json, err := json.Marshal(bundle)
if err != nil {
log.Println(err)
continue // Keep trying!
}
_, err = session.WriteMessage(json)
if err != nil {
log.Println(err)
break // Assume connection has died
}
}
}()
for { // This is needed to catch the closure of the sock
_, err := session.ReadMessage()
if err != nil {
break
}
}
for i, sliceChan := range s.bundleChannels {
if sliceChan == localChan {
s.bundleChannels = append(s.bundleChannels[0:i], s.bundleChannels[i+1:len(s.bundleChannels)]...)
break
}
}
if s.debug {
log.Println("Streams:", len(s.bundleChannels), "- close", crudpath)
}
close(localChan)
}
开发者ID:falahhaprak,项目名称:rter,代码行数:54,代码来源:genericStreamer.go
示例3: ConnectionHandler
func (self *SockjsDispatcherTransport) ConnectionHandler(session sockjs.Conn) {
log.Println("Client session created: transport=sockjs)")
for {
_, err := session.ReadMessage()
if err != nil {
break
}
go func() { session.WriteMessage([]byte("{\"Id\":\"PING\", \"Body\":\"Ping\", \"Error\":null}")) }()
time.Sleep(1 * time.Second)
}
log.Println("Client session closed: transport=sockjs")
}
开发者ID:snormore,项目名称:go.io,代码行数:12,代码来源:sockjs.go
示例4: SockJSHandler
func SockJSHandler(session sockjs.Conn) {
log.Println("Session created")
for {
val, err := session.ReadMessage()
if err != nil {
break
}
go func() { session.WriteMessage(val) }()
}
log.Println("session closed")
}
开发者ID:prinsmike,项目名称:sockjs-go,代码行数:12,代码来源:server.go
示例5: sockEchoHandler
func sockEchoHandler(conn sockjs.Conn) {
log.Println("echo session")
for {
if msg, err := conn.ReadMessage(); err != nil {
log.Println("getting err:", err)
return
} else {
go func() { conn.WriteMessage(msg) }()
}
}
}
开发者ID:reinbach,项目名称:sockjs-go-example,代码行数:12,代码来源:server.go
示例6: EchoHandler
func EchoHandler(conn sockjs.Conn) {
for {
if msg, err := conn.ReadMessage(); err == nil {
_, err := conn.WriteMessage(msg)
if err != nil {
log.Fatal(err)
}
} else {
return
}
}
}
开发者ID:notedit,项目名称:sockjs-go,代码行数:12,代码来源:server.go
示例7: sockPingHandler
func sockPingHandler(conn sockjs.Conn) {
log.Println("ping session")
for {
if msg, err := conn.ReadMessage(); err != nil {
log.Println("getting err:", err)
return
} else {
if string(msg) == `"ping"` {
go func() {
conn.WriteMessage([]byte(`"pong"`))
}()
}
}
}
}
开发者ID:reinbach,项目名称:sockjs-go-example,代码行数:15,代码来源:server.go
示例8: sockSineHandler
func sockSineHandler(conn sockjs.Conn) {
log.Println("sine session")
var x, y float64
var sine string
ticker := time.NewTicker(time.Second)
open := true
for {
if msg, err := conn.ReadMessage(); err != nil {
log.Println("getting err:", err)
ticker.Stop()
open = false
return
} else {
if string(msg) == `"start"` {
if !open {
ticker = time.NewTicker(time.Second)
open = true
}
go func() {
for t := range ticker.C {
x = float64(t.Nanosecond()) / 1000
y = 2.5 * (1 + math.Sin(x))
sine = fmt.Sprintf(`{"x": "%f", "y": "%f"}`, x, y)
log.Printf(sine)
conn.WriteMessage([]byte(sine))
}
}()
} else if string(msg) == `"stop"` {
log.Println("stop sine")
ticker.Stop()
open = false
}
}
}
}
开发者ID:reinbach,项目名称:sockjs-go-example,代码行数:38,代码来源:server.go
示例9: CloseHandler
func CloseHandler(conn sockjs.Conn) {
conn.Close()
}
开发者ID:notedit,项目名称:sockjs-go,代码行数:3,代码来源:server.go
注:本文中的github.com/igm/sockjs-go/sockjs.Conn类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论