本文整理匯總了Golang中github.com/flike/kingshard/mysql.NewPacketIO函數的典型用法代碼示例。如果您正苦於以下問題:Golang NewPacketIO函數的具體用法?Golang NewPacketIO怎麽用?Golang NewPacketIO使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了NewPacketIO函數的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: newClientConn
func (s *Server) newClientConn(co net.Conn) *ClientConn {
c := new(ClientConn)
c.c = co
c.schema = s.GetSchema(s.db)
c.pkg = mysql.NewPacketIO(co)
c.proxy = s
c.c = co
c.pkg.Sequence = 0
c.connectionId = atomic.AddUint32(&baseConnId, 1)
c.status = mysql.SERVER_STATUS_AUTOCOMMIT
c.salt, _ = mysql.RandomBuf(20)
c.txConns = make(map[*backend.Node]*backend.BackendConn)
c.closed = false
c.collation = mysql.DEFAULT_COLLATION_ID
c.charset = mysql.DEFAULT_CHARSET
c.stmtId = 0
c.stmts = make(map[uint32]*Stmt)
return c
}
示例2: ReConnect
func (c *Conn) ReConnect() error {
if c.conn != nil {
c.conn.Close()
}
n := "tcp"
if strings.Contains(c.addr, "/") {
n = "unix"
}
netConn, err := net.Dial(n, c.addr)
if err != nil {
return err
}
tcpConn := netConn.(*net.TCPConn)
//SetNoDelay controls whether the operating system should delay packet transmission
// in hopes of sending fewer packets (Nagle's algorithm).
// The default is true (no delay),
// meaning that data is sent as soon as possible after a Write.
//I set this option false.
tcpConn.SetNoDelay(false)
tcpConn.SetKeepAlive(true)
c.conn = tcpConn
c.pkg = mysql.NewPacketIO(tcpConn)
if err := c.readInitialHandshake(); err != nil {
c.conn.Close()
return err
}
if err := c.writeAuthHandshake(); err != nil {
c.conn.Close()
return err
}
if _, err := c.readOK(); err != nil {
c.conn.Close()
return err
}
//we must always use autocommit
if !c.IsAutoCommit() {
if _, err := c.exec("set autocommit = 1"); err != nil {
c.conn.Close()
return err
}
}
c.lastPing = time.Now().Unix()
return nil
}
示例3: ReConnect
func (c *Conn) ReConnect() error {
if c.conn != nil {
c.conn.Close()
}
n := "tcp"
if strings.Contains(c.addr, "/") {
n = "unix"
}
nd := net.Dialer{Timeout: c.wait_timeout}
netConn, err := nd.Dial(n, c.addr)
//netConn, err := net.Dial(n, c.addr)
if err != nil {
return err
}
c.conn = netConn
c.pkg = mysql.NewPacketIO(netConn)
if err := c.readInitialHandshake(); err != nil {
c.conn.Close()
return err
}
if err := c.writeAuthHandshake(); err != nil {
c.conn.Close()
return err
}
if _, err := c.readOK(); err != nil {
c.conn.Close()
return err
}
//we must always use autocommit
if !c.IsAutoCommit() {
if _, err := c.exec("set autocommit = 1"); err != nil {
c.conn.Close()
return err
}
}
c.lastPing = time.Now().Unix()
return nil
}
示例4: newClientConn
func (s *Server) newClientConn(co net.Conn) *ClientConn {
c := new(ClientConn)
tcpConn := co.(*net.TCPConn)
//SetNoDelay controls whether the operating system should delay packet transmission
// in hopes of sending fewer packets (Nagle's algorithm).
// The default is true (no delay),
// meaning that data is sent as soon as possible after a Write.
//I set this option false.
tcpConn.SetNoDelay(false)
c.c = tcpConn
c.schema = s.GetSchema(s.db)
c.pkg = mysql.NewPacketIO(tcpConn)
c.proxy = s
c.pkg.Sequence = 0
c.connectionId = atomic.AddUint32(&baseConnId, 1)
c.status = mysql.SERVER_STATUS_AUTOCOMMIT
c.salt, _ = mysql.RandomBuf(20)
c.txConns = make(map[*backend.Node]*backend.BackendConn)
c.closed = false
c.collation = mysql.DEFAULT_COLLATION_ID
c.charset = mysql.DEFAULT_CHARSET
c.stmtId = 0
c.stmts = make(map[uint32]*Stmt)
return c
}