• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang channel.Create函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中appengine/channel.Create函数的典型用法代码示例。如果您正苦于以下问题:Golang Create函数的具体用法?Golang Create怎么用?Golang Create使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了Create函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: AddClient

func AddClient(c appengine.Context, id string) (string, os.Error) {

	q := datastore.NewQuery("Client")
	var gg []*Client
	var check = 0

	if _, err := q.GetAll(c, &gg); err != nil {
		return "", err
	}

	for _, client := range gg {
		if client.ClientID == id {
			check = check + 1
		}
	}

	if check == 0 {
		key := datastore.NewIncompleteKey("Client")
		client := Client{ClientID: id}

		_, err := datastore.Put(c, key, &client)
		if err != nil {
			return "", err
		}
	}

	memcache.Delete(c, "sut")

	return channel.Create(c, id)

}
开发者ID:Nuntawut,项目名称:channelGAE,代码行数:31,代码来源:index.go


示例2: idhandler

func idhandler(w http.ResponseWriter, r *http.Request) {
	c = appengine.NewContext(r)
	clientID := strconv.Itoa(rand.Int())

	// add nick to db
	keysCache := &memcache.Item{
		Key:   clientID,
		Value: []byte(r.FormValue("nick")),
	}
	memcache.Set(c, keysCache)
	// add user to list
	userList := getUserList()
	if !stringInSlice(clientID, userList) {
		keys := append(userList, clientID)
		setUserList(keys)
	}
	// create channel
	tok, _ := channel.Create(c, clientID)
	responseList := []map[string]string{{"tok": tok, "id": clientID}}
	for _, id := range userList {
		nick := getNick(id)
		responseList = append(responseList, map[string]string{"nick": nick, "id": id})
	}
	response, _ := json.Marshal(responseList)
	fmt.Fprint(w, string(response))
}
开发者ID:jerrystarfield,项目名称:jerry-spooks,代码行数:26,代码来源:app.go


示例3: GetToken

func GetToken(c appengine.Context, h *hunt.Hunt, t *team.Team, admin bool) string {
	// Channel name format: huntID.timestamp
	timestamp := fmt.Sprintf("%d", time.Now().UnixNano())
	channelName := fmt.Sprintf("%s.%s", h.ID, timestamp)
	token, err := channel.Create(c, channelName)
	if err != nil {
		c.Errorf("Error: %v", err)
		return ""
	}
	listener := Listener{
		Channel:   channelName,
		Timestamp: timestamp,
		Admin:     admin,
		Open:      false,
	}
	if t != nil {
		listener.TeamID = t.ID
	}
	_, err = datastore.Put(c, datastore.NewIncompleteKey(c, listenerKind, h.Key), &listener)
	if err != nil {
		c.Errorf("Error: %v", err)
		return ""
	}
	return token
}
开发者ID:offpath,项目名称:ironpuzzler,代码行数:25,代码来源:broadcast.go


示例4: MakeClient

// Make a client of the specified dinger and return the id and token associated with the new client.
func MakeClient(c appengine.Context, dingerKey *datastore.Key) (*Client, os.Error) {
	// Create a key for this client
	key := datastore.NewKey(CLIENT_KEY_KIND, "", 0, dingerKey)

	// Generate some id for the client. It'll be the SHA1 sum of the dinger id and some random number.
	hashWriter := sha1.New()
	fmt.Fprint(hashWriter, KeyToDingerId(dingerKey))

	// Append a random integer
	randId, err := rand.Int(rand.Reader, big.NewInt(0x7fffffffffffffff))
	if err != nil {
		return nil, err
	}
	fmt.Fprint(hashWriter, randId)

	// Base64 encode the client id
	id := base64.URLEncoding.EncodeToString(hashWriter.Sum())

	// Create a channel for this client.
	tok, err := channel.Create(c, id)
	if err != nil {
		return nil, err
	}

	// Create the client record and store it
	client := &Client{Id: id, Token: tok}
	key, err = datastore.Put(c, key, client)
	if err != nil {
		return nil, err
	}

	return client, nil
}
开发者ID:rjw57,项目名称:dingaling,代码行数:34,代码来源:dinger.go


示例5: goToGame

func goToGame(w http.ResponseWriter, r *http.Request) {
	g, err := poker.LoadGame(r.FormValue("id"), r)
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}
	c := appengine.NewContext(r)
	u := user.Current(c)
	tok, err := channel.Create(c, u.Email+g.Id())
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}
	if addWatcher(g, u.Email) {
		err := g.Save(r)
		if err != nil {
			http.Error(w, err.Error(), http.StatusInternalServerError)
		}
	}
	json, err := g.ClientState(u.Email).JSON()
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}
	defineNames(w)
	if err := gameTemplate.Execute(w, json); err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
	}
	fmt.Fprintf(w, "<script>channel('%s')</script>", tok)
}
开发者ID:hundt,项目名称:poker,代码行数:30,代码来源:hello.go


示例6: root

func root(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	clientTemplate := template.Must(template.ParseFile("client.html"))
	token_value := strconv.Itoa(rand.Int())
	token_key, _ := channel.Create(c, token_value)
	clientTemplate.Execute(w, token_key)
	map_clients[token_key] = token_value
}
开发者ID:tbocs,项目名称:webapp-experiments,代码行数:8,代码来源:tbocsincloud.go


示例7: getchannel

func getchannel(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	tok, err := channel.Create(c, "hotload")
	if err != nil {
		// handle error
	}
	// return token to the client in an HTTP response
	fmt.Fprintln(w, tok)
}
开发者ID:alexdarlington,项目名称:app-core,代码行数:9,代码来源:api.go


示例8: initChannel

func initChannel(pfc *PFContext) (interface{}, error) {
	if pfc.ChannelID == "" {
		return nil, NewReadableError(_l("Missing Client ID"), nil)
	}

	if token, err := channel.Create(pfc.C, pfc.ChannelID); err != nil {
		return nil, NewReadableError(_l("Error initializing channel"), &err)
	} else {
		return map[string]string{"token": token}, nil
	}
}
开发者ID:huluwa,项目名称:2016_Gofr,代码行数:11,代码来源:json.go


示例9: handleCreateChannel

func handleCreateChannel(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	token, err := channel.Create(c, "placeholder")
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
	}

	w.Header().Set("Content-type", "text/json; charset=utf-8")
	jsonEncoder := json.NewEncoder(w)
	jsonEncoder.Encode(CreateChannelResponse{token})
}
开发者ID:rltoscano,项目名称:gombi,代码行数:11,代码来源:straph.go


示例10: connect

func connect(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	users++
	id := strconv.Itoa(users)
	tok, err := channel.Create(c, id)
	if err != nil {
		http.Error(w, "Couldn't create Channel", http.StatusInternalServerError)
		c.Errorf("channel.Create: %v", err)
		return
	}
	payload, _ := json.Marshal(map[string]string{"me": id, "token": tok})
	fmt.Fprint(w, string(payload))
}
开发者ID:felipernb,项目名称:canvas_pong,代码行数:13,代码来源:pongroulette.go


示例11: AddClient

// AddClient puts a Client record to the datastore with the Room as its
// parent, creates a channel and returns the channel token.
func (r *Room) AddClient(c appengine.Context, id string) (string, error) {
	key := datastore.NewKey(c, "Client", id, 0, r.Key(c))
	client := &Client{id}
	_, err := datastore.Put(c, key, client)
	if err != nil {
		return "", err
	}

	// Purge the now-invalid cache record (if it exists).
	memcache.Delete(c, r.Name)

	return channel.Create(c, id)
}
开发者ID:travisstaloch,项目名称:cuddle,代码行数:15,代码来源:db.go


示例12: handleWrPage

func handleWrPage(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	queryMap := r.URL.Query()
	table := queryMap.Get("t")
	id := queryMap.Get("u")
	token, err := channel.Create(c, table+"-"+id)
	err = tableTemplate.Execute(w, map[string]string{
		"userToken": token,
	})
	if err != nil {
		c.Errorf("tableTemplate: %v", err)
	}
}
开发者ID:just-another-one-timmy,项目名称:goprograms,代码行数:13,代码来源:multi.go


示例13: interview_create

func interview_create(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	tok, err := channel.Create(c, r.FormValue("id"))
	callback := r.FormValue("callback")
	if err != nil {
		http.Error(w, "Couldn't create Channel", http.StatusInternalServerError)
		c.Errorf("channel.Create: %v", err)
		return
	}
	if callback == "" {
		callback = "callback"
	}
	fmt.Fprintf(w, callback+"('%s')", tok)
}
开发者ID:hugozhu,项目名称:gae-coding-interview,代码行数:14,代码来源:webapp.go


示例14: whiteboardHandler

func whiteboardHandler(w http.ResponseWriter, r *http.Request) {
	vm := NewWhiteboardVM()
	c := appengine.NewContext(r)

	code := r.FormValue("x")
	repo := repository.NewRepo(c)
	candidate, interviewer, err := repo.GetSession(code)

	if err != nil {
		c.Errorf("repo.GetSession: %v", err)
		http.Redirect(w, r, "/", http.StatusMovedPermanently)
		return
	}

	vm.Candidate, vm.Interviewer = candidate, interviewer

	tc := twilio.NewTwilioCapability(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)

	vm.IsInterviewer = (code == interviewer)
	if vm.IsInterviewer {
		vm.Message = "Interviewer mode."
		tc.AllowClientOutgoing(TWILIO_APP_SID, nil)
	} else {
		vm.Message = "Candidate mode."
		tc.AllowClientIncoming(candidate)
	}

	tokenExpiration := time.Duration(48) * time.Hour

	twilioToken, err := tc.Generate(tokenExpiration)

	if err != nil {
		c.Errorf("capability.Generate: %s", err)
		http.Error(w, "Twilio setup error.", http.StatusInternalServerError)
		return
	}
	vm.TwilioToken = twilioToken

	// Create channel token.
	tok, err := channel.Create(c, code)
	if err != nil {
		c.Errorf("template.ParseSetFiles: %s", err)
		http.Error(w, "Channel error.", http.StatusInternalServerError)
		return
	}
	vm.ChannelToken = tok

	renderPage(w, c, "view/whiteboard.html", vm)
}
开发者ID:julan,项目名称:Koderank,代码行数:49,代码来源:main.go


示例15: OnToken

func OnToken(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	roomName := r.FormValue("room")
	if roomName != "" {
		userName := Random(10)
		clientId := MakeClientId(roomName, userName)
		token, err := channel.Create(c, clientId)
		if err != nil {
			c.Criticalf("Error while creating token: %s", err)
		}
		w.Write([]byte("user=" + userName + "&token=" + token))
	} else {
		w.WriteHeader(http.StatusBadRequest)
	}
}
开发者ID:rozifus,项目名称:cubeslam,代码行数:15,代码来源:app.go


示例16: newClient

func newClient(context appengine.Context, r *http.Request) *Client {
	c := new(Client)
	c.name = r.FormValue("name")
	c.action = r.FormValue("action")

	// ユーザIDが設定されていなければ新しく設定する
	c.id = r.FormValue("id")
	if c.id == "" {
		c.id = CreateId()
	}

	var err error
	c.token, err = channel.Create(context, c.id)
	Check(context, err)
	return c
}
开发者ID:yokano,项目名称:MemoryBattler,代码行数:16,代码来源:matching.go


示例17: GetToken

func GetToken(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	tok, err := channel.Create(c, r.FormValue("id"))
	callback := r.FormValue("callback")
	if err != nil {
		http.Error(w, "Couldn't create Channel", http.StatusInternalServerError)
		c.Errorf("channel.Create: %v", err)
		return
	}
	if callback == "" {
		w.Header().Set("Content-type", "text/javascript")
		fmt.Fprintf(w, "%s", tok)
	} else {
		fmt.Fprintf(w, callback+"('%s')", tok)
	}
}
开发者ID:hugozhu,项目名称:gae-rpi-webapp,代码行数:16,代码来源:counter.go


示例18: getToken

func getToken(c appengine.Context, playerId string) (string, error) {
	item, err := memcache.Get(c, "token::"+playerId)
	if err != nil {
		tok, err := channel.Create(c, playerId)
		if err != nil {
			return "", err
		}
		memcache.Set(c, &memcache.Item{
			Key:        "token::" + playerId,
			Value:      []byte(tok),
			Expiration: 2 * time.Hour,
		})
		return tok, nil
	}
	tok := string(item.Value)
	return tok, nil
}
开发者ID:josephburnett,项目名称:kdt3,代码行数:17,代码来源:game.go


示例19: joinRoom

func joinRoom(c appengine.Context, roomId string, email string) (string, error) {
	room := newRoom()
	item, err := memcache.JSON.Get(c, roomId, room)
	if err != nil {
		return "", err
	}

	room.Users[email] = true
	item.Object = room

	if err := memcache.JSON.Set(c, item); err != nil {
		return "", err
	}

	publish(c, roomId, email, "")
	return channel.Create(c, email+roomId)
}
开发者ID:sayanriju,项目名称:tuxychat,代码行数:17,代码来源:chat.go


示例20: handleFrontPage

func handleFrontPage(w http.ResponseWriter, r *http.Request) {
	if r.URL.Path != "/" {
		http.Error(w, "404 Not Found", http.StatusNotFound)
		return
	}
	c := appengine.NewContext(r)
	userid, sessionid, err := getSession(c, r)
	if err != nil {
		http.Redirect(w, r, "/login/login.html", 307)
		return
	}

	if frontPageTmplErr != nil {
		w.WriteHeader(http.StatusInternalServerError) // 500
		fmt.Fprintf(w, "Page template is bad: %v", frontPageTmplErr)
		return
	}

	tok, err := channel.Create(c, userid+"/"+sessionid)
	if err != nil {
		http.Error(w, "Couldn't create Channel", http.StatusInternalServerError)
		c.Errorf("channel.Create: %v", err)
		return
	}

	var ch channelStruct
	ch.UserID = userid
	ch.Token = tok
	ch.SessionID = sessionid
	_, err = datastore.Put(c, datastore.NewKey("channel", userid+"/"+sessionid, 0, nil), &ch)
	if err != nil {
		return
	}

	b := new(bytes.Buffer)
	data := map[string]interface{}{"userid": userid, "token": tok, "session": sessionid}
	if err := frontPageTmpl.Execute(b, data); err != nil {
		w.WriteHeader(http.StatusInternalServerError) // 500
		fmt.Fprintf(w, "tmpl.Execute failed: %v", err)
		return
	}

	w.Header().Set("Content-Length", strconv.Itoa(b.Len()))
	b.WriteTo(w)
}
开发者ID:AaronO,项目名称:lightwave,代码行数:45,代码来源:server.go



注:本文中的appengine/channel.Create函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang channel.SendJSON函数代码示例发布时间:2022-05-24
下一篇:
Golang blobstore.UploadURL函数代码示例发布时间:2022-05-24
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap