當前位置: 首頁>>代碼示例>>Golang>>正文


Golang teleport.New函數代碼示例

本文整理匯總了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 {}
}
開發者ID:nan1888,項目名稱:teleport,代碼行數:9,代碼來源:client2.go

示例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
}
開發者ID:nan1888,項目名稱:teleport,代碼行數:10,代碼來源:ClassicalClient.go

示例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(),
	}
}
開發者ID:ReinhardHsu,項目名稱:pholcus,代碼行數:11,代碼來源:app.go

示例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 {}
}
開發者ID:MrXiaoZ,項目名稱:teleport,代碼行數:12,代碼來源:client.go

示例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,
	}
}
開發者ID:keepWork,項目名稱:pholcus,代碼行數:12,代碼來源:node.go

示例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 {}
}
開發者ID:MrXiaoZ,項目名稱:teleport,代碼行數:13,代碼來源:server.go

示例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,
	}
}
開發者ID:npk,項目名稱:pholcus-1,代碼行數:12,代碼來源:node.go

示例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
}
開發者ID:nathena,項目名稱:pholcus,代碼行數:13,代碼來源:app.go

示例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 {}
}
開發者ID:strugglepan,項目名稱:teleport,代碼行數:18,代碼來源:server.go

示例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
}
開發者ID:kt3000,項目名稱:pholcus,代碼行數:45,代碼來源:app.go

示例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 {}
}
開發者ID:strugglepan,項目名稱:teleport,代碼行數:24,代碼來源:client.go

示例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)
//.........這裏部分代碼省略.........
開發者ID:npk,項目名稱:pholcus-1,代碼行數:101,代碼來源:output_lib.go

示例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")
	}
}
開發者ID:sandeepone,項目名稱:pholcus,代碼行數:30,代碼來源:output_lib.go

示例14: main

// 有標識符UID的demo,保證了客戶端鏈接唯一性
func main() {
	tp := teleport.New().SetUID("C2", "abc")
	tp.Client("127.0.0.1", ":20125", true)
	tp.Request("我是短鏈接客戶端,我來報個到", "短鏈接報到")
	select {}
}
開發者ID:CodyGuo,項目名稱:teleport,代碼行數:7,代碼來源:client2.go


注:本文中的github.com/henrylee2cn/teleport.New函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。