首页 文章

将websocket库更新到最新版本

提问于
浏览
5

我在Ubuntu上运行Go编译器,使用 sudo apt-get install golang 安装

我已经成功编译并执行了一个简单的示例服务器的代码(参见http://golang.org/pkg/websocket/#Handler

package main

import (
    "http"
    "io"
    "websocket"
)

// Echo the data received on the Web Socket.
func EchoServer(ws *websocket.Conn) {
    io.Copy(ws, ws);
}

func main() {
    http.Handle("/echo", websocket.Handler(EchoServer));
    err := http.ListenAndServe(":12345", nil);
    if err != nil {
        panic("ListenAndServe: " + err.String())
    }
}

但是,我无法使用我的Chromium版本(16.0.912.77)连接到服务器 . 我假设Chrome已经实现了RFC 6455 Websocket(版本13),但是Ubuntu golang包中的go websocket库已经过时了 .

所以,我的问题是:如何只将websocket包更新到最新版本?

2 回答

  • 2

    Go websocket 软件包的最新版本是 net/websocket ,位于 code.google.com/p/go.net/websocket ,需要Go 1每周开发版本 .

    对于Ubuntu golang-weekly:Ubuntu PPA packages for Go .

    对于每周开发发布文档:Go Programming Language .

  • 3

    我想Ubuntu软件包存储库中Go的版本可能是r60.3(左右),现在有点旧了 . 使用最新的每周,将代码更改为:

    package main
    
    import (
            "code.google.com/p/go.net/websocket"
            "io"
            "net/http"
    )
    
    // Echo the data received on the Web Socket.
    func EchoServer(ws *websocket.Conn) {
            io.Copy(ws, ws)
    }
    
    func main() {
            http.Handle("/echo", websocket.Handler(EchoServer))
            err := http.ListenAndServe(":12345", nil)
            if err != nil {
                    panic("ListenAndServe: " + err.Error())
            }
    }
    

    此外,在websocket包 s/ParseRequestURI/ParseRequest/ ,它似乎在这里工作 . ( 1

    Update :抱歉,我写得/读得太快,似乎没有用,页面显示:"not websocket protocol"(这里是64b Ubuntu 10.04上的Chrome 18.0.1025.33 beta)

    Update 2012-08-22 :以上( 1 )关于编辑websocket包的注意事项如果后来做了应该或不做的事情就不会被测试,抱歉 .

相关问题