本文整理匯總了Golang中github.com/yinqiwen/gsnova/common/event.Event.SetId方法的典型用法代碼示例。如果您正苦於以下問題:Golang Event.SetId方法的具體用法?Golang Event.SetId怎麽用?Golang Event.SetId使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/yinqiwen/gsnova/common/event.Event
的用法示例。
在下文中一共展示了Event.SetId方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: read
func (d *directChannel) read() {
defer d.Close()
for {
c := d.conn
if nil == c {
return
}
c.SetReadDeadline(time.Now().Add(d.ReadTimeout()))
b := make([]byte, 1500)
n, err := c.Read(b)
if n > 0 {
var ev event.Event
if !d.udpProxyConn {
ev = &event.TCPChunkEvent{Content: b[0:n]}
} else {
ev = &event.UDPEvent{Content: b[0:n]}
}
//log.Printf("######recv %T", ev)
ev.SetId(d.sid)
proxy.HandleEvent(ev)
}
if nil != err {
if !d.udpProxyConn {
closeEv := &event.ConnCloseEvent{}
closeEv.SetId(d.sid)
proxy.HandleEvent(closeEv)
}
return
}
}
}
示例2: publish
func (p *ProxySession) publish(ev event.Event) {
ev.SetId(p.Id.Id)
start := time.Now()
timeout := start.Add(60 * time.Second)
for !p.closeByClient && time.Now().Before(timeout) {
queue := getEventQueue(p.Id.ConnId, false)
if nil != queue {
err := queue.Publish(ev, 10*time.Second)
if nil != err {
continue
}
return
}
time.Sleep(5 * time.Millisecond)
}
if !p.closeByClient {
log.Printf("Session[%s:%d] publish event timeout after %v", p.Id.User, p.Id.Id, time.Now().Sub(start))
p.forceClose()
}
}