代码拉取完成,页面将自动刷新
package main
import (
"crypto/sha256"
"fmt"
"path/filepath"
"strconv"
"time"
"gitee.com/prestonTao/keystore"
"gitee.com/prestonTao/libp2parea"
"gitee.com/prestonTao/libp2parea/engine"
"gitee.com/prestonTao/libp2parea/nodeStore"
)
var (
addrPre = "SELF"
// areaName = sha256.Sum256([]byte("nihaoa a a!"))
areaName = sha256.Sum256([]byte("icom_im_test_65"))
keyPwd = "123456789"
serverHost = "47.109.16.70"
clientHost = "127.0.0.1"
basePort = 19965
)
func main() {
fmt.Println("start client")
engine.SetLogPath("simple_client_log.txt")
area := StartOnePeer()
area.WaitAutonomyFinish()
for {
engine.Log.Info("连接数量:%d", len(*area.GetNetworkInfo()))
time.Sleep(time.Second * 5)
}
select {}
}
func StartOnePeer() *libp2parea.Area {
keyPath1 := filepath.Join("conf", "keystore_client.key")
dbpath := filepath.Join("db", "msgcache_client")
key1 := keystore.NewKeystore(keyPath1, addrPre)
err := key1.Load()
if err != nil {
//没有就创建
err = key1.CreateNewKeystore(keyPwd)
if err != nil {
panic("创建key1错误:" + err.Error())
}
}
if key1.NetAddr == nil {
_, _, err = key1.CreateNetAddr(keyPwd, keyPwd)
if err != nil {
panic("创建NetAddr错误:" + err.Error())
}
}
if len(key1.GetAddr()) < 1 {
_, err = key1.GetNewAddr(keyPwd, keyPwd)
if err != nil {
panic("创建Addr错误:" + err.Error())
}
}
if len(key1.GetDHKeyPair().SubKey) < 1 {
_, err = key1.GetNewDHKey(keyPwd, keyPwd)
if err != nil {
panic("创建Addr错误:" + err.Error())
}
}
area, err := libp2parea.NewArea(areaName, key1, keyPwd)
// area.SetNetTypeToTest()
area.SetLeveldbPath(dbpath)
area.SetDiscoverPeer(serverHost + ":" + strconv.Itoa(basePort))
area.StartUP(false, clientHost, uint16(basePort+1))
// InitHandler(area)
return area
}
const msg_id_text = 1000
const msg_id_searchSuper = 1001
func sendMsg(area *libp2parea.Area, toAddr nodeStore.AddressNet) {
engine.Log.Info("start sendMsg")
content := []byte("你好")
msg, sendOk, isSelf, err := area.SendP2pMsg(msg_id_text, &toAddr, &content)
if err != nil {
engine.Log.Info("发送失败:%s", err.Error())
return
}
engine.Log.Info("发送消息%v %t %t", msg, sendOk, isSelf)
netid := area.GetNetId()
addrs := nodeStore.GetQuarterLogicAddrNetByAddrNet(&netid)
for i, v := range addrs {
if i == 0 {
continue
}
_, err := area.SendSearchSuperMsg(msg_id_searchSuper, v, &content)
if err != nil {
engine.Log.Info("发送错误:%s", err.Error())
} else {
engine.Log.Info("发送search super msg成功")
}
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。