func (h *Header) HasFO() bool {
	return has3rdBit(h.Flags)
}
HasFO reports whether Header has Follow On message(FO flag is set or not).
package message
import (
	"encoding/binary"
	"fmt"
	"io"
)
type Header struct {
	Flags           uint8  
	Type            uint8
	Length          uint16
	SEID            uint64
	SequenceNumber  uint32  
	MessagePriority uint8   
	Payload         []byte
}
func NewHeader(ver, fo, mp, s, mtype uint8, seid uint64, seq uint32, pri uint8, payload []byte) *Header {
	h := &Header{
		Flags:           ((ver & 0x7) << 5) | (fo << 2) | (mp << 1) | s,
		Type:            mtype,
		SEID:            seid,
		SequenceNumber:  seq,
		MessagePriority: pri,
		Payload:         payload,
	}
	h.SetLength()
	return h
}
func NewHeaderNodeRelated(ver, mtype uint8, seq uint32, payload []byte) *Header {
	return NewHeader(ver, 0, 0, 0, mtype, 0, seq, 0, payload)
}
func NewHeaderSessionRelated(ver, fo, mp, s, mtype uint8, seid uint64, seq uint32, pri uint8, payload []byte) *Header {
	return NewHeader(ver, fo, mp, s, mtype, seid, seq, pri, payload)
}