本文整理汇总了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;未经允许,请勿转载。 |
请发表评论