Author: echatellier Date: 2013-07-24 23:08:10 +0200 (Wed, 24 Jul 2013) New Revision: 2911 Url: http://chorem.org/projects/jtimer/repository/revisions/2911 Log: Send idle time into sockets Modified: branches/ng-jtimer/jtimer-server/src/main/go/jtimer.go Modified: branches/ng-jtimer/jtimer-server/src/main/go/jtimer.go =================================================================== --- branches/ng-jtimer/jtimer-server/src/main/go/jtimer.go 2013-07-23 21:15:26 UTC (rev 2910) +++ branches/ng-jtimer/jtimer-server/src/main/go/jtimer.go 2013-07-24 21:08:10 UTC (rev 2911) @@ -4,6 +4,8 @@ "fmt" "net/http" "time" + //"log" + //"strconv" "github.com/BurntSushi/xgb" "github.com/BurntSushi/xgb/xproto" "github.com/BurntSushi/xgb/screensaver" @@ -13,13 +15,19 @@ // 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") + var message string + websocket.Message.Receive(ws, &message) + fmt.Println("[Received] ", message) } +func WebSocketServer() { + http.Handle("/echo", websocket.Handler(EchoServer)); + err := http.ListenAndServe(":12345", nil); + if err != nil { + //panic("ListenAndServe: ", err.String()) + fmt.Println("[Debug] "); + } +} func RunTimer() { X, err := xgb.NewConn() @@ -33,23 +41,26 @@ draw := xproto.Drawable(screen.Root) screensaver.Init(X) + // connect to webscocket server + origin := "http://localhost:12345/" + url := "ws://localhost:12345/echo" + for { time.Sleep(1 * time.Second) cookie := screensaver.QueryInfo(X, draw) reply, _ := cookie.Reply() fmt.Println("Idle since", reply.MsSinceUserInput); - + ws, _ := websocket.Dial(url, "", origin) + msSinceUserInputString := fmt.Sprintf("{idle:%d}", reply.MsSinceUserInput) + /*if _, err := ws.Write([]byte(msSinceUserInputString)); err != nil { + log.Fatal(err) + }*/ + websocket.Message.Send(ws, msSinceUserInputString) } } 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] "); - } + go WebSocketServer() + RunTimer() } -