Author: echatellier Date: 2013-07-23 23:15:26 +0200 (Tue, 23 Jul 2013) New Revision: 2910 Url: http://chorem.org/projects/jtimer/repository/revisions/2910 Log: Add go client (idle detect and websocket server) Added: branches/ng-jtimer/jtimer-server/src/main/go/ branches/ng-jtimer/jtimer-server/src/main/go/jtimer.go Added: branches/ng-jtimer/jtimer-server/src/main/go/jtimer.go =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/go/jtimer.go (rev 0) +++ branches/ng-jtimer/jtimer-server/src/main/go/jtimer.go 2013-07-23 21:15:26 UTC (rev 2910) @@ -0,0 +1,55 @@ +package main + +import ( + "fmt" + "net/http" + "time" + "github.com/BurntSushi/xgb" + "github.com/BurntSushi/xgb/xproto" + "github.com/BurntSushi/xgb/screensaver" + "code.google.com/p/go.net/websocket" +) + + +// echo back the websocket. +func EchoServer(ws *websocket.Conn) { + fmt.Println("Allo ?"); + //var message string + //websocket.Message.Receive(ws, &message) + //fmt.Println("[Debug] ", message); + websocket.Message.Send(ws, "Hello") +} + + +func RunTimer() { + X, err := xgb.NewConn() + if err != nil { + fmt.Println(err) + return + } + + screen := xproto.Setup(X).DefaultScreen(X) + //wid, err := xproto.NewWindowId(X) + draw := xproto.Drawable(screen.Root) + screensaver.Init(X) + + for { + time.Sleep(1 * time.Second) + cookie := screensaver.QueryInfo(X, draw) + reply, _ := cookie.Reply() + fmt.Println("Idle since", reply.MsSinceUserInput); + + + } +} + +func main() { + go RunTimer() + http.Handle("/echo", websocket.Handler(EchoServer)); + err := http.ListenAndServe(":12345", nil); + if err != nil { + //panic("ListenAndServe: ", err.String()) + fmt.Println("[Debug] "); + } +} +