本文整理匯總了Golang中github.com/henrylee2cn/teleport.New函數的典型用法代碼示例。如果您正苦於以下問題:Golang New函數的具體用法?Golang New怎麽用?Golang New使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了New函數的14個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: main
// 有標識符UID的demo,保證了客戶端鏈接唯一性
func main() {
// 開啟Teleport錯誤日誌調試
debug.Debug = true
tp := teleport.New().SetUID("C2", "abc")
tp.Client("127.0.0.1", ":20125", true)
tp.Request("我是短鏈接客戶端,我來報個到", "短鏈接報到", "shortOne")
select {}
}
示例2: newManage
// 新建連接
func newManage() *Manage {
m := &Manage{
Teleport: teleport.New(),
result: make(chan [2]interface{}, 1),
}
uid := M_WEB + ":" + fmt.Sprint(time.Now().Unix())
m.SetAPI(newManageApi(m)).SetUID(uid).Client(MANANGE_SOCKET_IP, MANANGE_SOCKET_PORT)
return m
}
示例3: newLogic
func newLogic() *Logic {
return &Logic{
AppConf: cache.Task,
Traversal: spider.Menu,
status: status.STOPPED,
Teleport: teleport.New(),
TaskJar: distribute.NewTaskJar(),
SpiderQueue: crawl.NewSpiderQueue(),
CrawlPool: crawl.NewCrawlPool(),
}
}
示例4: main
// 有標識符UID的demo,保證了客戶端鏈接唯一性
func main() {
tp := teleport.New().SetUID("C").SetAPI(teleport.API{
"報到": func(receive *teleport.NetData) *teleport.NetData {
log.Printf("默認:%v", receive.Body)
return nil
},
})
tp.Client("127.0.0.1", ":20125")
tp.Request("我是客戶端,我來報個到", "報到")
select {}
}
示例5: newPholcus
func newPholcus() *Node {
return &Node{
RunMode: cache.Task.RunMode,
Port: ":" + strconv.Itoa(cache.Task.Port),
Master: cache.Task.Master,
Teleport: teleport.New(),
TaskJar: task.NewTaskJar(),
Spiders: spiderqueue.New(),
Crawls: crawlpool.New(),
Status: status.RUN,
}
}
示例6: main
// 無標識符UID的demo
func main() {
tp := teleport.New()
tp.SetAPI(teleport.API{
"報到": func(receive *teleport.NetData) *teleport.NetData {
log.Printf("報到:%v", receive.Body)
return teleport.ReturnData("我是服務器,我已經收到你的來信")
},
})
tp.Server(":20125")
select {}
}
示例7: NewNode
func NewNode(mode int, port int, master string) *Node {
return &Node{
RunMode: mode,
Port: ":" + strconv.Itoa(port),
Master: master,
Teleport: teleport.New(),
TaskJar: task.NewTaskJar(),
Spiders: spiderqueue.New(),
Crawls: crawlpool.New(),
Status: status.RUN,
}
}
示例8: New
func New() App {
app := &Logic{
AppConf: cache.Task,
Traversal: spider.Menu,
Scheduler: scheduler.Sdl,
status: status.STOP,
Teleport: teleport.New(),
TaskJar: distribute.NewTaskJar(),
SpiderQueue: crawl.NewSpiderQueue(),
CrawlPool: crawl.NewCrawlPool(),
}
return app
}
示例9: main
// 無標識符UID的demo
func main() {
tp := teleport.New()
tp.SetAPI(teleport.API{
"報到": func(receive *teleport.NetData) *teleport.NetData {
log.Printf("報到:%v", receive.Body)
return teleport.ReturnData("服務器:"+receive.From+"客戶端已經報到!", "報到", "C3")
},
// 短鏈接不可以直接轉發請求
"短鏈接報到": func(receive *teleport.NetData) *teleport.NetData {
log.Printf("報到:%v", receive.Body)
tp.Request("服務器:"+receive.From+"客戶端已經報到!", "報到", "C3")
return nil
},
}).Server(":20125")
select {}
}
示例10: Init
// 使用App前必須進行先Init初始化,SetLog()除外
func (self *Logic) Init(mode int, port int, master string, w ...io.Writer) App {
self.canSocketLog = false
if len(w) > 0 {
self.SetLog(w[0])
}
self.LogGoOn()
cache.Task.RunMode, cache.Task.Port, cache.Task.Master = mode, port, master
self.Traversal = spider.Menu
self.RunMode = mode
self.Port = ":" + strconv.Itoa(port)
self.Master = master
self.Teleport = teleport.New()
self.TaskJar = distribute.NewTaskJar()
self.SpiderQueue = crawl.NewSpiderQueue()
self.CrawlPool = crawl.NewCrawlPool()
switch self.RunMode {
case status.SERVER:
if self.checkPort() {
logs.Log.SetStealLevel()
logs.Log.Informational(" !!當前運行模式為:[ 服務器 ] 模式!!")
self.Teleport.SetAPI(distribute.ServerApi(self)).Server(self.Port)
}
case status.CLIENT:
if self.checkAll() {
logs.Log.SetStealLevel()
logs.Log.Informational(" !!當前運行模式為:[ 客戶端 ] 模式!!")
self.Teleport.SetAPI(distribute.ClientApi(self)).Client(self.Master, self.Port)
}
case status.OFFLINE:
logs.Log.Informational(" !!當前運行模式為:[ 單機 ] 模式!!")
return self
default:
logs.Log.Warning(" * ——請指定正確的運行模式!——")
return self
}
// 根據RunMode判斷是否開啟節點間log打印
self.canSocketLog = true
go self.socketLog()
return self
}
示例11: main
// 有標識符UID的demo,保證了客戶端鏈接唯一性
func main() {
tp := teleport.New()
tp.SetAPI(teleport.API{
"報到": func(receive *teleport.NetData) *teleport.NetData {
if receive.Status == teleport.SUCCESS {
log.Printf("%v", receive.Body)
}
if receive.Status == teleport.FAILURE {
log.Printf("%v", "請求處理失敗!")
}
return nil
},
"非法請求測試": func(receive *teleport.NetData) *teleport.NetData {
log.Printf("%v", receive.Body)
tp.Close()
return nil
},
})
tp.Client("127.0.0.1", ":20125")
tp.Request("我是客戶端,我來報個到", "報到")
tp.Request("我是客戶端,我來報個到", "非法請求測試")
select {}
}
示例12: init
func init() {
defer func() {
// 獲取輸出方式列表
for out, _ := range Output {
OutputLib = append(OutputLib, out)
}
util.StringsSort(OutputLib)
}()
/************************ excel 輸出 ***************************/
Output["excel"] = func(self *Collector, dataIndex int) {
defer func() {
if err := recover(); err != nil {
Log.Println(err)
}
}()
var file *xlsx.File
var sheet *xlsx.Sheet
var row *xlsx.Row
var cell *xlsx.Cell
var err error
folder1 := "result/data"
folder2 := folder1 + "/" + self.startTime.Format("2006年01月02日 15時04分05秒")
filename := folder2 + "/" + util.FileNameReplace(self.Spider.GetName()+"_"+self.Spider.GetKeyword()+" "+fmt.Sprintf("%v", self.sum[0])+"-"+fmt.Sprintf("%v", self.sum[1])) + ".xlsx"
// 創建文件
file = xlsx.NewFile()
// 添加分類數據工作表
for Name, Rule := range self.GetRules() {
// 跳過不輸出的數據
if len(Rule.GetOutFeild()) == 0 {
continue
}
// 添加工作表
sheet = file.AddSheet(util.ExcelSheetNameReplace(Name))
// 寫入表頭
row = sheet.AddRow()
for _, title := range Rule.GetOutFeild() {
cell = row.AddCell()
cell.Value = title
}
cell = row.AddCell()
cell.Value = "當前鏈接"
cell = row.AddCell()
cell.Value = "上級鏈接"
cell = row.AddCell()
cell.Value = "下載時間"
num := 0 //小計
for _, datacell := range self.DockerQueue.Dockers[dataIndex] {
if datacell["RuleName"].(string) == Name {
row = sheet.AddRow()
for _, title := range Rule.GetOutFeild() {
cell = row.AddCell()
vd := datacell["Data"].(map[string]interface{})
if v, ok := vd[title].(string); ok || vd[title] == nil {
cell.Value = v
} else {
cell.Value = util.JsonString(vd[title])
}
}
cell = row.AddCell()
cell.Value = datacell["Url"].(string)
cell = row.AddCell()
cell.Value = datacell["ParentUrl"].(string)
cell = row.AddCell()
cell.Value = datacell["DownloadTime"].(string)
num++
}
}
// Log.Printf("[任務:%v | 關鍵詞:%v | 小類:%v] 輸出 %v 條數據!!!\n", self.Spider.GetName(), self.Spider.GetKeyword(), Name, num)
}
// 創建/打開目錄
f2, err := os.Stat(folder2)
if err != nil || !f2.IsDir() {
if err := os.MkdirAll(folder2, 0777); err != nil {
Log.Printf("Error: %v\n", err)
}
}
// 保存文件
err = file.Save(filename)
if err != nil {
Log.Println(err)
}
}
/************************ CSV 輸出 ***************************/
Output["csv"] = func(self *Collector, dataIndex int) {
defer func() {
if err := recover(); err != nil {
Log.Println(err)
//.........這裏部分代碼省略.........
示例13: hbase
session, err := mgo.Dial(config.DB_URL) //連接數據庫
if err != nil {
panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)
db := session.DB(config.DB_NAME) //數據庫名稱
collection := db.C(config.DB_COLLECTION) //如果該集合已經存在的話,則直接返回
for i, count := 0, len(self.DockerQueue.Dockers[dataIndex]); i < count; i++ {
err = collection.Insert((interface{})(self.DockerQueue.Dockers[dataIndex][i]))
if err != nil {
panic(err)
}
}
}
/************************ HBase 輸出 ***************************/
var master = cache.Task.Master
var port = ":" + strconv.Itoa(cache.Task.Port)
var hbaseSocket = teleport.New().SetPackHeader("tentinet")
var once sync.Once
func (self *Collector) hbase(dataIndex int) {
once.Do(func() { hbaseSocket.Client(master, port) })
for i, count := 0, len(self.DockerQueue.Dockers[dataIndex]); i < count; i++ {
hbaseSocket.Request(self.DockerQueue.Dockers[dataIndex][i], "log")
}
}
示例14: main
// 有標識符UID的demo,保證了客戶端鏈接唯一性
func main() {
tp := teleport.New().SetUID("C2", "abc")
tp.Client("127.0.0.1", ":20125", true)
tp.Request("我是短鏈接客戶端,我來報個到", "短鏈接報到")
select {}
}