国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

如何給離線用戶留言

jy03204340

如何給離線用戶留言,我要做一個好友聊天系統(tǒng),要做到可以跟在線用戶一對多聊天,可以給離線的用戶留言,請問workerman能做到嗎?

3980 3 0
3個回答

jy03204340

補充,跟在線用戶一對多聊天,這個我已經(jīng)做出來了,另外,給離線的用戶留言,這個怎么做?

  • 暫無評論
jy03204340

再補充,由于worker是自動生成client_id的,我如何才能摒棄掉client_id,用自定義的一個字段替代Client_id呢,這也是我為什么不能走給離線用戶留言的原因,因為離線用戶沒有client_id,所以我無法給離線用戶留言,假定已知該離線用戶的姓名,且是唯一的,是否可以替代client_id,又如何替代,求walkor大神幫忙解答。

  • 暫無評論
walkor 打賞

如果用戶名唯一,可以把用戶名當(dāng)做用戶的唯一標(biāo)識

可以用存儲做一個user_name到client_id的映射,類似下面(user_name 與 client_id是一對多還是一對一由業(yè)務(wù)決定)

user_name | client_id
小明 | 3007
小紅 | 3008

登錄時:將user_name傳遞給workerman,這時workerman能夠得到當(dāng)前user_name和client_id,把這個信息記錄到映射表
發(fā)言時:可以通過Gateway::isOnline($client_id)判斷對應(yīng)的用戶是否在線,不在線根據(jù)client_id查詢映射表的用戶名,就能知道是給哪一個用戶發(fā)的消息,將消息放入未讀消息表中(字段大概是 user_name | form_user_name | time | content)
下線用戶再次登錄時:同樣將user_name傳遞給workerman,workerman從未讀消息表中找這個user_name是否有未讀消息,把消息取出來調(diào)用Gateway::sendToClient($client_id)發(fā)送給當(dāng)前用戶

大致過程如上,細(xì)節(jié)需要根據(jù)自己的業(yè)務(wù)推敲

  • coolbosyen 2014-12-06

    映射表是不是最好使用memcache存儲

  • coolbosyen 2014-12-06

    還有一個問題,是不是用戶再次登錄時,先通過username來查詢是否有client_id,如果有workerman不自動生成client_id,如果沒有workerman自動生成client_id,并將username和client_id保存到映射表。如果是這樣的話,在哪里可以控制workerman自動生成client_id

  • walkor 2014-12-07

    client_id無法自定義,每次用戶登錄時更新或者插入映射表中的client_id,退出時根據(jù)client_id刪除對應(yīng)的記錄

  • jy03204340 2014-12-23

    @1:3Q,謝謝walkor大神的指點!

年代過于久遠(yuǎn),無法發(fā)表回答
??