• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 224  文章 - 41  trackbacks - 0
            <2012年12月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            享受編程

            常用鏈接

            留言簿(11)

            隨筆分類(159)

            隨筆檔案(224)

            文章分類(2)

            文章檔案(4)

            經典c++博客

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            用golang 建立起一個http server 非常的簡單,只要簡單的幾行代碼:
             
            package main
             
            import (
                
            "net/http"
            )
             
            func SayHello(w http.ResponseWriter, req 
            *http.Request) {
                w.Write([]
            byte("Hello"))
            }

             
            func main() 
            {
                http.HandleFunc(
            "/hello", SayHello)
                http.ListenAndServe(
            ":8001", nil)
             
            }


            使用GoSublime ide

            編譯 go build httpserver.go
            運行 httpserver.exe

            用chrome 訪問 http://127.0.0.1:8001/hello
            可以看到
            hello

            使用 go語言搭建 websocket 也非常的簡單

            先安裝 websocketbao
            go get code.google.com/p/go.net/websocket

            編寫golang的服務器


            package main

            import (
                
            "code.google.com/p/go.net/websocket"
                
            "fmt"
                
            "io"
                
            "log"
                
            "net/http"
            )

            func ChatWith(ws 
            *websocket.Conn) {
                var err error

                
            for {
                    var reply 
            string

                    
            if err = websocket.Message.Receive(ws, &reply); err != nil {
                        fmt.Println(
            "Can't receive")
                        
            break
                    }


                    fmt.Println(
            "Received back from client: " + reply)

                    
            //msg := "Received from " + ws.Request().Host + "  " + reply
                    msg := "welcome to websocket do by pp"
                    fmt.Println(
            "Sending to client: " + msg)

                    
            if err = websocket.Message.Send(ws, msg); err != nil {
                        fmt.Println(
            "Can't send")
                        
            break
                    }

                }

            }


            func Client(w http.ResponseWriter, r 
            *http.Request) {
                html :
            = `<!doctype html>
            <html>
                
                
            <script type="text/javascript" src="http://img3.douban.com/js/packed_jquery.min6301986802.js" async="true"></script>
                  
            <script type="text/javascript">
                     var sock 
            = null;
                     var wsuri 
            = "ws://127.0.0.1:8001";

                     window.onload 
            = function() {

                        console.log(
            "onload");

                        
                        
            try
                        
            {
                            sock 
            = new WebSocket(wsuri);
                        }
            catch (e) {
                            alert(e.Message);
                        }

                        
                        
                        

                        sock.onopen 
            = function() {
                           console.log(
            "connected to " + wsuri);
                        }

                        
                        sock.onerror 
            = function(e) {
                           console.log(
            " error from connect " + e);
                        }

                        
                        

                        sock.onclose 
            = function(e) {
                           console.log(
            "connection closed (" + e.code + ")");
                        }


                        sock.onmessage 
            = function(e) {
                           console.log(
            "message received: " + e.data);
                           
                           $(
            '#log').append('<p> server say: '+e.data+'<p>');
                           $(
            '#log').get(0).scrollTop = $('#log').get(0).scrollHeight;
                        }

                        
                     }
            ;

                     function send() 
            {
                        var msg 
            = document.getElementById('message').value;
                        $(
            '#log').append('<p style="color:red;">I say: '+msg+'<p>');
                            $(
            '#log').get(0).scrollTop = $('#log').get(0).scrollHeight;
                            $(
            '#msg').val('');
                        sock.send(msg);
                     }
            ;
                  
            </script>
                  
            <h1>WebSocket chat with server </h1>
                      
            <div id="log" style="height: 300px;overflow-y: scroll;border: 1px solid #CCC;">
                      
            </div>
                      
            <div>
                        
            <form>
                            
            <p>
                                Message: 
            <input id="message" type="text" value="Hello, world!"><button onclick="send();">Send Message</button>
                            
            </p>
                        
            </form>
                        
                      
            </div>

            </html>`
                io.WriteString(w, html)
            }


            func main() 
            {
                
            //
                http.Handle("/", websocket.Handler(ChatWith))
                http.HandleFunc(
            "/chat", Client)

                fmt.Println(
            "listen on port 8001")
                fmt.Println(
            "visit http://127.0.0.1:8001/chat with web browser(recommend: chrome)")

                
            if err := http.ListenAndServe(":8001", nil); err != nil {
                    log.Fatal(
            "ListenAndServe:", err)
                }

            }


            啟動服務器:





            用chrome 瀏覽器就可以和服務器交互



            這個程序較為簡單,以后可以加入服務器智能回答的功能。

            參考:
            http://www.sharejs.com/codes/go/4374

            http://www.xinze.me/%E5%9F%BA%E4%BA%8Egolang%E7%9A%84websocket-server/
            posted on 2012-12-14 15:07 漂漂 閱讀(16639) 評論(0)  編輯 收藏 引用
            亚洲中文字幕无码久久精品1| 人人狠狠综合久久亚洲88| 久久久久亚洲AV无码专区首JN| 狠狠色丁香久久婷婷综合图片| 一本久久a久久精品vr综合| 国产欧美一区二区久久| 久久性生大片免费观看性| 伊人久久无码中文字幕| 久久精品国产亚洲欧美| 人妻无码久久精品| 久久亚洲精品视频| 久久精品国产亚洲αv忘忧草 | 99久久精品免费国产大片| 久久久久综合中文字幕| …久久精品99久久香蕉国产| 久久国产精品无| 精品久久国产一区二区三区香蕉| 国产成人久久精品一区二区三区| 91精品国产高清久久久久久91 | 精品午夜久久福利大片| 国产精品久久久香蕉| 理论片午午伦夜理片久久| 久久国产精品-久久精品| 精品熟女少妇a∨免费久久| 久久久久久曰本AV免费免费| 狠狠色伊人久久精品综合网| 青青草国产精品久久| 国内精品久久人妻互换| 久久永久免费人妻精品下载| 亚洲国产成人乱码精品女人久久久不卡| 99精品久久精品| 国产精品一久久香蕉国产线看| 久久精品国产亚洲AV大全| 新狼窝色AV性久久久久久| 亚洲AV日韩AV天堂久久| 无码精品久久久久久人妻中字| 久久人做人爽一区二区三区| 2020久久精品亚洲热综合一本| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久久综合香蕉尹人综合网| 国产午夜电影久久|