Documentation ¶
Index ¶
- func Area(regioncode string) (region string)
- func AreaForRegLatLng(regioncode string) (region []string)
- func DataSignatureCheck(key *rsa.PublicKey, dataSig, expDate, dataBody string) error
- func DecryptKey(key []byte) (*rsa.PublicKey, error)
- func KeySignatureCheck(key *rsa.PublicKey, pubKey, keySig, keyExpDate string) (*rsa.PublicKey, error)
- func SetLogger(l *log.Logger)
- func SetLoggerDebug()
- type EPSPConn
- func (p *EPSPConn) AddRx()
- func (p *EPSPConn) AddRxDup()
- func (p *EPSPConn) AddRxUniq()
- func (p *EPSPConn) AddTx()
- func (p *EPSPConn) Close()
- func (p *EPSPConn) Get(ctx context.Context) (string, error)
- func (p *EPSPConn) GetConnTime() *time.Time
- func (p *EPSPConn) GetDiscTime() *time.Time
- func (p *EPSPConn) GetPingRecv() *time.Time
- func (p *EPSPConn) GetPingTime() *time.Time
- func (p *EPSPConn) GetRXUniqRate() uint64
- func (p *EPSPConn) IsConn() bool
- func (p *EPSPConn) SetConnTime()
- func (p *EPSPConn) SetDiscTime()
- func (p *EPSPConn) SetLastRXTime()
- func (p *EPSPConn) SetPingRecvTime()
- func (p *EPSPConn) SetPingTime()
- func (p *EPSPConn) SetPongTime()
- func (p *EPSPConn) Write(strs ...string) error
- type P2PPeer
- func (p *P2PPeer) Close()
- func (p *P2PPeer) GetIPPortPeerID() string
- func (p *P2PPeer) GetPeerID() string
- func (p *P2PPeer) GetPeerIDorIPPort() string
- func (p *P2PPeer) NetLoop(ctx context.Context, mypeerid string, agent []string, peers func() []string, ...) (err error)
- func (p P2PPeer) StringAgent() string
- func (p *P2PPeer) WriteTo(ss ...string) (err error)
- type P2PPeers
- func (pps *P2PPeers) AddP2PClients(ctx context.Context, mypeerid string, otherPeers []string, myagent []string, ...)
- func (pps *P2PPeers) ConnectedIPPortPeersList() (ss []string)
- func (pps *P2PPeers) ConnectedPeersList() (ss []string)
- func (pps *P2PPeers) NewP2PServers(ctx context.Context, mypeerid string, myagent []string, port int, ...) (global bool, err error)
- func (pps *P2PPeers) NumOfConnectedPeers() (n uint64)
- type P2SClient
- func (p2s P2SClient) CheckPortOpen(ctx context.Context, peerID string, peercount int) (open bool, err error)
- func (p2s *P2SClient) Close(ctx context.Context)
- func (p2s *P2SClient) Echo(ctx context.Context, peerID string, peercount uint64) (err error)
- func (p2s P2SClient) GetKey(ctx context.Context, peer *Peer, echo bool) (err error)
- func (p2s P2SClient) GetPeerID() string
- func (p2s P2SClient) GetPeers(ctx context.Context, peerID string) (peers []string, err error)
- func (p2s P2SClient) GetTemporaryPeerID(ctx context.Context) (peerID string, err error)
- func (p2s P2SClient) GetTime(ctx context.Context) (t time.Time, err error)
- func (p2s P2SClient) PeerCountByRegion(ctx context.Context, code5xx func(from *P2PPeer, retval []string) error) (peerCountByName PeerCounts, err error)
- func (p2s P2SClient) Regist(ctx context.Context, peerID string, port int, region string, numofpeers uint64, ...) (err error)
- func (p2s P2SClient) TellPeer(ps P2PPeers, limited []string) (err error)
- type Peer
- func (peer *Peer) ConnectedIPPortPeersList() (ss []string)
- func (peer *Peer) ConnectedPeersList() (ss []string)
- func (peer *Peer) LoadKey() (peers []string, err error)
- func (peer *Peer) Loop(ctx context.Context, port int) (err error)
- func (peer *Peer) NumOfConnectedPeers() (n uint64)
- func (peer *Peer) PeerIDToP2PPeer(peerid string) *P2PPeer
- func (peer *Peer) SaveKey()
- func (peer *Peer) WebSocketAPI(ctx context.Context, hs *http.ServeMux)
- func (peer *Peer) WriteExceptFrom(from *P2PPeer, ss ...string)
- type PeerCounts
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AreaForRegLatLng ¶
AreaForRegLatLng は、地域コードを地域名緯度経度に変換します
func DataSignatureCheck ¶
DataSignatureCheck は、データ署名を照合します
Types ¶
type EPSPConn ¶
type EPSPConn struct { IPPort string ConnTime *time.Time PingTime *time.Time PongTime *time.Time PingPong *time.Duration PingRecvTime *time.Time DiscTime *time.Time LastRXTime *time.Time Agent []string Tx uint64 Rx uint64 RxUniq uint64 RxDup uint64 // contains filtered or unexported fields }
EPSPConn は、EPSPの接続情報を保持します
func (*EPSPConn) GetConnTime ¶
GetConnTime は、接続した時刻を取得します
func (*EPSPConn) GetDiscTime ¶
GetDiscTime は、Pingした時刻を取得します
func (*EPSPConn) GetPingRecv ¶
GetPingRecv は、Pingを受信した時刻を取得します
func (*EPSPConn) GetPingTime ¶
GetPingTime は、Pingした時刻を取得します
func (*EPSPConn) GetRXUniqRate ¶
GetRXUniqRate はすべての受信情報のうち、最速だったものの割合の逆数を返します
func (*EPSPConn) SetLastRXTime ¶
func (p *EPSPConn) SetLastRXTime()
SetLastRXTime は、最後にデータを受信した時刻を設定します
func (*EPSPConn) SetPingRecvTime ¶
func (p *EPSPConn) SetPingRecvTime()
SetPingRecvTime は、現在時刻をPingを受け取った時刻として設定します
func (*EPSPConn) SetPongTime ¶
func (p *EPSPConn) SetPongTime()
SetPongTime は、現在時刻をPingの返答を受け取った時刻として設定します
type P2PPeer ¶
P2PPeer は、ピア接続のためのクラスです
func NewP2PClient ¶
func NewP2PClient(ctx context.Context, ipportpeerid string, connectedIPPortPeersList func() []string) (pc *P2PPeer, err error)
NewP2PClient は、他のピアと接続します。
func NewP2PServer ¶
func NewP2PServer(ctx context.Context, l *traditionalnet.TCPListener, myagent []string) (ps *P2PPeer, err error)
NewP2PServer は、ピアからの接続を待ちます
func (*P2PPeer) GetIPPortPeerID ¶
GetIPPortPeerID は、IP,Port,PeerID 形式の文字列を返します
func (*P2PPeer) GetPeerIDorIPPort ¶
GetPeerIDorIPPort は、PeerID、IPアドレス、ポートを取得します
type P2PPeers ¶
type P2PPeers []*P2PPeer
P2PPeers is array of *P2PPeer
func (*P2PPeers) AddP2PClients ¶
func (pps *P2PPeers) AddP2PClients(ctx context.Context, mypeerid string, otherPeers []string, myagent []string, codep2mp func(from *P2PPeer, retval []string) error, ConnectedIPPortPeersList func() []string, incoming uint64)
AddP2PClients は、P2PClientsを追加します
func (*P2PPeers) ConnectedIPPortPeersList ¶
ConnectedIPPortPeersList は、接続中ピアのIPアドレス,ポート,ピアIDのリストを返します
func (*P2PPeers) ConnectedPeersList ¶
ConnectedPeersList は、接続中ピアのピアIDのリストを返します
func (*P2PPeers) NewP2PServers ¶
func (pps *P2PPeers) NewP2PServers(ctx context.Context, mypeerid string, myagent []string, port int, codep2mp func(from *P2PPeer, retval []string) error, ConnectedIPPortPeersList func() []string, incoming uint64) (global bool, err error)
NewP2PServers は、P2PServerを立ち上げます
func (*P2PPeers) NumOfConnectedPeers ¶
NumOfConnectedPeers は、接続中ピアの数を返します
type P2SClient ¶
type P2SClient struct {
EPSPConn
}
P2SClient は、サーバに対するクライアントです
func NewP2SClient ¶
func NewP2SClient(ctx context.Context, paddr string, myagent0 []string) (p2s *P2SClient, myagent []string, err error)
NewP2SClient は、サーバ接続用のクライアントです
func (P2SClient) CheckPortOpen ¶
func (p2s P2SClient) CheckPortOpen(ctx context.Context, peerID string, peercount int) (open bool, err error)
CheckPortOpen は、ポート開放をサーバに確認します
func (P2SClient) GetTemporaryPeerID ¶
GetTemporaryPeerID は、サーバから暫定ピアIDを取得します
func (P2SClient) PeerCountByRegion ¶
func (p2s P2SClient) PeerCountByRegion(ctx context.Context, code5xx func(from *P2PPeer, retval []string) error) (peerCountByName PeerCounts, err error)
PeerCountByRegion は、地域ごとのピア数を取得します
type Peer ¶
type Peer struct { PeerID string BootTime time.Time ProtocolTimeDiff time.Duration MyAgent []string EPSPServer *P2SClient Clients P2PPeers Servers P2PPeers PeerCountsByRegion PeerCounts Global bool // contains filtered or unexported fields }
Peer はピアに関するデータを保持します。
func NewPeer ¶
func NewPeer(hosts []string, region string, incoming uint64, serverKey, peerKey []byte, usercmd func(code string, retval ...string)) (*Peer, error)
NewPeer は、Peerのコンストラクタです
func (*Peer) ConnectedIPPortPeersList ¶
ConnectedIPPortPeersList は、接続中ピアのIPアドレス,ポート,ピアIDのリストを返します
func (*Peer) ConnectedPeersList ¶
ConnectedPeersList は、接続中ピアのリストを返します
func (*Peer) NumOfConnectedPeers ¶
NumOfConnectedPeers は、接続中ピアの数を返します
func (*Peer) PeerIDToP2PPeer ¶
PeerIDToP2PPeer は、peeridに対応するP2PPeerを返します。対応するP2PPeerがなければnilを返します。
func (*Peer) WebSocketAPI ¶
WebSocketAPI is handler for websocket api.
func (*Peer) WriteExceptFrom ¶
WriteExceptFrom は、from以外へssを送信します
type PeerCounts ¶
type PeerCounts []peerCount
PeerCounts is count of region
func NewPeerCount ¶
func NewPeerCount(recvdata2 string) (peerCountByRegion PeerCounts)
NewPeerCount is constructor of PeerCount
func (PeerCounts) GoogleChart ¶
func (p PeerCounts) GoogleChart() []byte
GoogleChart makes GoogleChart JSON table.
func (PeerCounts) NumOfAllPeers ¶
func (p PeerCounts) NumOfAllPeers() (numOfAPeers uint64)
NumOfAllPeers は、すべてのPeer数の合計です
func (PeerCounts) String ¶
func (p PeerCounts) String() string