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

如何給離線用戶留言

jy03204340

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

3945 3 0
3個(gè)回答

jy03204340

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

  • 暫無評(píng)論
jy03204340

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

  • 暫無評(píng)論
walkor 打賞

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

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

user_name | client_id
小明 | 3007
小紅 | 3008

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

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

  • coolbosyen 2014-12-06

    映射表是不是最好使用memcache存儲(chǔ)

  • coolbosyen 2014-12-06

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

  • walkor 2014-12-07

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

  • jy03204340 2014-12-23

    @1:3Q,謝謝walkor大神的指點(diǎn)!

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