本文整理汇总了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()
}
}