• <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
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            享受編程

            常用鏈接

            留言簿(11)

            隨筆分類(159)

            隨筆檔案(224)

            文章分類(2)

            文章檔案(4)

            經(jīng)典c++博客

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            用golang 建立起一個(gè)http server 非常的簡(jiǎn)單,只要簡(jiǎn)單的幾行代碼:
             
            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
            運(yùn)行 httpserver.exe

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

            使用 go語(yǔ)言搭建 websocket 也非常的簡(jiǎn)單

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

            編寫golang的服務(wù)器


            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)
                }

            }


            啟動(dòng)服務(wù)器:





            用chrome 瀏覽器就可以和服務(wù)器交互



            這個(gè)程序較為簡(jiǎn)單,以后可以加入服務(wù)器智能回答的功能。

            參考:
            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 漂漂 閱讀(16633) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国内精品欧美久久精品| 午夜精品久久影院蜜桃| 精品综合久久久久久97| 久久精品这里只有精99品| 久久综合久久综合九色| 久久ww精品w免费人成| 亚洲αv久久久噜噜噜噜噜| 中文成人无码精品久久久不卡 | 99久久精品免费观看国产| 国产精品久久久久久福利漫画| 午夜人妻久久久久久久久| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲精品午夜国产va久久| 国产欧美久久久精品影院| 久久综合九色综合网站| 2021国产精品午夜久久| 久久精品一区二区三区AV| 人妻久久久一区二区三区| 人妻无码中文久久久久专区| 久久青青草原亚洲av无码app| 久久久亚洲欧洲日产国码二区| 久久精品国产亚洲AV无码麻豆| 精品久久久噜噜噜久久久 | 人妻丰满?V无码久久不卡| 亚洲国产精品无码久久久久久曰| 久久夜色精品国产噜噜亚洲a| 久久人人爽人人爽人人av东京热| 午夜精品久久久久久中宇| 国产精品久久国产精麻豆99网站 | 精品人妻伦九区久久AAA片69| 国产精品青草久久久久福利99 | 欧美午夜A∨大片久久 | 午夜精品久久久内射近拍高清| 少妇人妻综合久久中文字幕| 色偷偷88888欧美精品久久久| 久久国产亚洲高清观看| 激情五月综合综合久久69| 久久伊人五月丁香狠狠色| 国产精品久久久久久| 久久不见久久见免费影院www日本| 久久无码AV中文出轨人妻|