MCPcopy Index your code
hub / github.com/koding/kite / dial

Method dial

client.go:306–345  ·  view source on GitHub ↗
(timeout time.Duration)

Source from the content-addressed store, hash-verified

304}
305
306func (c *Client) dial(timeout time.Duration) (err error) {
307 transport := c.config().Transport
308
309 c.LocalKite.Log.Debug("Client transport is set to '%s'", transport)
310
311 var session sockjs.Session
312
313 switch transport {
314 case config.WebSocket:
315 session, err = sockjsclient.DialWebsocket(c.URL, c.config())
316 case config.XHRPolling:
317 session, err = sockjsclient.DialXHR(c.URL, c.config())
318 case config.Auto:
319 session, err = sockjsclient.DialWebsocket(c.URL, c.config())
320 if err == websocket.ErrBadHandshake {
321 // In cases when kite server is behind a proxy that do
322 // not support websocket connections, fall back to XHR.
323 session, err = sockjsclient.DialXHR(c.URL, c.config())
324 }
325 default:
326 return fmt.Errorf("Connection transport is not known '%v'", transport)
327 }
328
329 if err != nil {
330 return err
331 }
332
333 c.setSession(session)
334 c.wg.Add(1)
335 go c.sendHub()
336
337 // Reset the wait time.
338 c.redialBackOff.Reset()
339
340 // Must be run in a goroutine because a handler may wait a response from
341 // server.
342 go c.callOnConnectHandlers()
343
344 return nil
345}
346
347func (c *Client) dialForever(connectNotifyChan chan bool) {
348 dial := func() error {

Callers 2

DialTimeoutMethod · 0.95
dialForeverMethod · 0.95

Calls 7

configMethod · 0.95
setSessionMethod · 0.95
sendHubMethod · 0.95
callOnConnectHandlersMethod · 0.95
DebugMethod · 0.80
ResetMethod · 0.80
AddMethod · 0.65

Tested by

no test coverage detected