doudu22272099831 2013-04-08 18:29
浏览 480
已采纳

Websocket超时的惯用方式。

I have code like the following:

_, err := websocket.Dial("wss://remote-server", "", "http://localhost")

if (err == nil) {
  fmt.Println("Worked!")
} else {
  fmt.Println("Fail")
}

When remote-server is down, it takes 60s to timeout. I found websocket.SetDeadline (http://godoc.org/code.google.com/p/go.net/websocket#Conn.SetDeadline), but I don't have a connection yet to apply it to. I can pass a Config to DialConfig, but I can't see where to specify a timeout doing that.

I found https://code.google.com/p/go-wiki/wiki/Timeouts, is this how I have to do it? How do I correctly pass the error code back from the goroutine?

  • 写回答

1条回答 默认 最新

  • dousi1970 2013-04-09 08:12
    关注

    I havent used the go websocket package yet but from what I can infer from the documentation one should probably use net.DialTimeout(...) coupled with websocket.NewClient(...)

    The source of DialConfig uses the same method but limited to net.Dial.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题