本文整理汇总了Golang中github.com/desertbit/glue/backend.BackendSocket类的典型用法代码示例。如果您正苦于以下问题:Golang BackendSocket类的具体用法?Golang BackendSocket怎么用?Golang BackendSocket使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了BackendSocket类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: onNewSocketConnection
func onNewSocketConnection(bs backend.BackendSocket) {
// Close the socket if incomming connections should be blocked.
if block {
bs.Close()
return
}
// Create a new socket value.
// The goroutines are started automatically.
newSocket(bs)
}
开发者ID:e4x,项目名称:glue,代码行数:11,代码来源:socket.go
示例2: handleOnNewSocketConnection
func (s *Server) handleOnNewSocketConnection(bs backend.BackendSocket) {
// Close the socket if incomming connections should be blocked.
if s.IsBlocked() {
bs.Close()
return
}
// Create a new socket value.
// The goroutines are started automatically.
newSocket(s, bs)
}
开发者ID:so0k,项目名称:ecs-sample,代码行数:11,代码来源:server.go
示例3: newSocket
// newSocket creates a new socket and initializes it.
func newSocket(bs backend.BackendSocket) *Socket {
// Create a new socket value.
s := &Socket{
bs: bs,
writeChan: bs.WriteChan(),
readChan: bs.ReadChan(),
finalReadChan: make(chan string, readChanBuffer),
isClosedChan: make(chan struct{}),
pingTimer: time.NewTimer(pingPeriod),
pingTimeout: time.NewTimer(pingResponseTimeout),
}
// Set the event functions.
bs.OnClose(s.onClose)
// Stop the timeout again. It will be started by the ping timer.
s.pingTimeout.Stop()
// Start the loops and handlers in new goroutines.
go s.pingTimeoutHandler()
go s.readLoop()
go s.pingLoop()
return s
}
开发者ID:epigos,项目名称:glue,代码行数:27,代码来源:socket.go
示例4: newSocket
// newSocket creates a new socket and initializes it.
func newSocket(bs backend.BackendSocket) *Socket {
// Create a new socket value.
s := &Socket{
bs: bs,
writeChan: bs.WriteChan(),
readChan: bs.ReadChan(),
// Set a dummy function to not always
// check if the method is not set.
onRead: func(string) {},
pingTimer: time.NewTimer(pingPeriod),
pingTimeout: time.NewTimer(pingResponseTimeout),
isClosedChan: make(chan struct{}),
}
// Set the event functions.
bs.OnClose(s.onClose)
// Stop the timeout again. It will be started by the ping timer.
s.pingTimeout.Stop()
// Start the loops and handlers in new goroutines.
go s.pingTimeoutHandler()
go s.readLoop()
go s.pingLoop()
return s
}
开发者ID:gitter-badger,项目名称:glue,代码行数:31,代码来源:socket.go
示例5: newSocket
// newSocket creates a new socket and initializes it.
func newSocket(bs backend.BackendSocket) *Socket {
// Create a new socket value.
s := &Socket{
id: utils.UUID(),
bs: bs,
channels: newChannels(),
writeChan: bs.WriteChan(),
readChan: bs.ReadChan(),
isClosedChan: make(chan struct{}),
pingTimer: time.NewTimer(pingPeriod),
pingTimeout: time.NewTimer(pingResponseTimeout),
}
// Create the main channel.
s.mainChannel = s.Channel(mainChannelName)
// Set the event functions.
bs.OnClose(s.onClose)
// Stop the timeout again. It will be started by the ping timer.
s.pingTimeout.Stop()
// Start the loops and handlers in new goroutines.
go s.pingTimeoutHandler()
go s.readLoop()
go s.pingLoop()
return s
}
开发者ID:e4x,项目名称:glue,代码行数:32,代码来源:socket.go
示例6: onNewSocketConnection
func onNewSocketConnection(bs backend.BackendSocket) {
// Close the socket if incomming connections should be blocked.
if block {
bs.Close()
return
}
// Create a new socket value.
s := newSocket(bs)
func() {
// Recover panics and log the error.
defer func() {
if e := recover(); e != nil {
log.L.Errorf("glue: panic while calling on new socket function: %v\n%s", e, debug.Stack())
}
}()
// Trigger the on new socket event function.
onNewSocket(s)
}()
}
开发者ID:epigos,项目名称:glue,代码行数:22,代码来源:socket.go
示例7: newSocket
// newSocket creates a new socket and initializes it.
func newSocket(server *Server, bs backend.BackendSocket) *Socket {
// Create a new socket value.
s := &Socket{
server: server,
bs: bs,
id: utils.RandomString(socketIDLength),
channels: newChannels(),
writeChan: bs.WriteChan(),
readChan: bs.ReadChan(),
isClosedChan: make(chan struct{}),
pingTimer: time.NewTimer(pingPeriod),
pingTimeout: time.NewTimer(pingResponseTimeout),
}
// Create the main channel.
s.mainChannel = s.Channel(mainChannelName)
// Set the event functions.
bs.OnClose(s.onClose)
// Stop the timeout again. It will be started by the ping timer.
s.pingTimeout.Stop()
// Add the new socket to the active sockets map.
// If the ID is already present, then generate a new one.
func() {
// Lock the mutex.
s.server.socketsMutex.Lock()
defer s.server.socketsMutex.Unlock()
// Be sure that the ID is unique.
for {
if _, ok := s.server.sockets[s.id]; !ok {
break
}
s.id = utils.RandomString(socketIDLength)
}
// Add the socket to the map.
s.server.sockets[s.id] = s
}()
// Start the loops and handlers in new goroutines.
go s.pingTimeoutHandler()
go s.readLoop()
go s.pingLoop()
return s
}
开发者ID:FurqanSoftware,项目名称:papyrus,代码行数:54,代码来源:socket.go
注:本文中的github.com/desertbit/glue/backend.BackendSocket类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论