1. 程式人生 > >聊天功能設計

聊天功能設計

我們一個多頁面的H5應用產品,需要有聊天功能,和微信類似,我們的聊天也是有和所有人的聊天列表頁面,有和單個人的聊天詳情頁面,聊天內容有文字和圖片,未來可能有表情。預研了市場上的聊天工具,最後選了環信web版本的聊天工具. 由於聊天需要客戶端和對方的伺服器建立長連結,因此採用iframe的方式,主頁面沒有任何頁面元素,只是有js邏輯,其他頁面都在主頁面的iframe裡面。主頁面負責和環信伺服器建立長連結,和它進行通訊,如果有訊息,就通知子頁面,如果當前子頁面需要響應訊息,則處理。 聊天記錄環信只給儲存3天的,內容還是得我們自己儲存。我們儲存圖片和文字最好是一開始使用者點選的時候就先把內容上傳到伺服器上,如果圖片還得上傳到七牛雲上,等伺服器返回圖片的id後再通過環信把訊息發推送給對方。實際上我們可以只拿環信當通道,傳遞json字串,理論上我們只調用他傳送普通訊息的介面,就可以傳遞任何訊息,並且圖片類的訊息我們可以只傳遞圖片id,對方收到型別為圖片的訊息後,可以拼上七牛的圖片字首,對方就可以看到圖片了,但是環信是看不到圖片的,更好地保護使用者的隱私。 然後就是後臺資料庫設計了,如果按照傳統的方式儲存在mysql下,資料庫肯定受不了,如果儲存在mongodb下或是Elasticsearch下
,則業務程序還得連線相關的資料庫,增加系統的複雜度,我們並不是一個聊天應用,使用者的聊天場景不是特別多。那就簡單一點來,以Json形式將雙方的聊天記錄放到MySQL資料庫下面,為了保證資料庫的io,限制一個人每個月和每個人的聊天資料每1000條儲存到一條json下。資料庫設計這裡除了要記錄使用者的聊天記錄以外,還需要能迅速找到使用者和誰聊天,每個月聊天次數,以便程式能迅速決定向哪個聊天的json裡面寫資料。這裡設計了3個表,一個表記錄用戶和誰聊天了,最後聊天內容和形式,有多少訊息使用者沒有看過,主要用來展示聊天列表頁。一個表記錄每個使用者和對方每月聊天的每個json的資料量,用來迅速決策,當月聊天是否滿1000條,如果滿了,則要另外拆成一個json來記錄資料了。最後一個表用來記錄雙方的聊天記錄,只有一個id和一個JSON資料。

相關推薦

WorkerMan學習篇:websocket+workerman聊天功能設計(一):簡單認證

初步設計如下 1、websocket客戶端連線服務端 是無腦的(這很重要) 2、服務端需要記錄連線進來的所有客戶端(方便日後統一廣播訊息) 3、服務端肯定能獲得客戶端ip。為此我們還需要客戶端加入使用者暱稱來區分 4、服務端可以無腦的向客戶端傳送訊息。但

聊天功能設計

我們一個多頁面的H5應用產品,需要有聊天功能,和微信類似,我們的聊天也是有和所有人的聊天列表頁面,有和單個人的聊天詳情頁面,聊天內容有文字和圖片,未來可能有表情。預研了市場上的聊天工具,最後選了環信web版本的聊天工具. 由於聊天需要客戶端和對方的伺服器建立長連結,因此採用

實現類似微信聊天功能的mysql表設計

前言: 最近設計了一套聊天功能,此功能支援人對人聊天、傳送圖片、檢視聊天記錄、按時間展示聊天列表、最後一條聊天資料及未讀訊息數 下面分享一下表結構及實現邏輯:   表結構: 1、聊天主表 id(主鍵id) u

2017-5-5 QQ面板 (用戶控件、timer控件,輪詢實現聊天功能

賬號 reat foreach friend ext 分享 label nec back using System; using System.Collections.Generic; using System.ComponentModel; using System.

提高逼格,給自己的網站加入智能聊天功能

text hle 人的 現在 lin 人工智能 ges 免費 logs 提高逼格,給自己的網站加入智能聊天功能 引言   現在突然發現有很多 QQ 群都開啟了群機器人的功能,其中有兩個角色,他們分別是:Baby Q 和 QQ 小冰。在 Q 群中,你可以對他們進行任意程度

用php+mysql+ajax實現淘寶客服或阿裏旺旺聊天功能 之 前臺頁面

group -a com 現在 中間 數據 bottom margin -m 首先來看一下我已經實現的效果圖: 消費者頁面:(本篇隨筆) (1)會顯示店主的頭像 (2)當前用戶發送信息顯示在右側,接受的信息,顯示在左側 店主或客服頁面:(下一篇隨筆) (1)在左側有一個列

用php+mysql+ajax實現淘寶客服或阿裏旺旺聊天功能 之 後臺頁面

聯系人 http esc hold 聊天內容 12px onclick onf pda 在上一篇隨筆中,我們已經看了如何實現前臺的對話功能;前臺我限定了店主只有一人,店鋪只有一個,所有比較單一,但後臺就不一樣了,而後臺更像是我們常見的聊天軟件;當然,前臺也應該實現這種效果,

HTML5+weui仿微信聊天功能、長按刪除功能

html5微信聊天 h5微信聊天界面最近由於項目需要, 就運用html5+css3+weui+jquery實現的微信聊天小案例,可發表圖像、紅包、打賞...功能, 還可以長按刪除消息。。。案例截圖如下:HTML及Js片段:<!DOCTYPE html><html lang="zh-cn"&g

SSH 項目中 使用websocket 實現網頁聊天功能

發送 ref asi action 監聽器 remote static scrollto 連接 參考文章 :java使用websocket,並且獲取HttpSession,源碼分析 http://www.cnblogs.com/zhuxiaojie/p/623882

Java精品高級課,架構課,java8新特性,P2P金融項目,程序設計功能設計,數據庫設計,第三方支付,web安全,視頻教程

數據庫設計 zfs 調優 pex 完整版 city 後臺 中間件 集群 36套精品Java架構師,高並發,高性能,高可用,分布式,集群,電商,緩存,性能調優,設計模式,項目實戰,P2P金融項目,大型分布式電商實戰視頻教程 視頻課程包含: 高級Java架構師包含:Sp

運營思略APP服務功能設計方案

運營思略 APP 運營 軟件 運營思略APP是一款互聯網運營人員學習交流軟件,這款軟件的欄目頻道分別為:APP運營、網站運營、社群運營、新媒體運營、用戶運營、內容運營、活動運營、市場運營、以及求職與招聘。為互聯網運營人員提供各類運營工具的使用介紹、優秀運營活動案例,運營推廣幹貨以及運營玩

通過 UDP+多線程 實現聊天功能

udp 多線程 聊天 package liu.net.udp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPack

Java中使用UDP實現簡單的聊天功能

udp http @override 簡單的 ima string [] 發送消息 sock 通過DatagramSocket類來實現。此類表示用來發送和接收數據報包的套接字。 發送端代碼如下: 2 3 import java.io.IOException; 4

36套精品Java高級課,架構課,java8新特性,P2P金融項目,程序設計功能設計,數據庫設計,第三方支付,web安全,高並發,高性能,高可用,分布式,集群,電商,緩存,性能調優,設計模式,項目實戰,大型分布式電商項目實戰視頻教程

java cti 投資 調優 dubbo pac 性能 -s clas 36套精品Java高級課,架構課,java8新特性,P2P金融項目,程序設計,功能設計,數據庫設計,第三方支付,web安全,高並發,高性能,高可用,分布式,集群,電商,緩存,性能調優,設計模式,項

七月小說網 功能設計(二)

就會 小說 同時 down logs 輪播圖 都是 服務器壓力 進行 概述 在通過對世面上的各種小說網站簡單了解之後(PS:好多盜版網站真的好醜哦。),去除花裏胡哨的功能,保留實用功能。 初步制定了以下幾個功能需求,當然,所有需求功能都是我自己設計、自己評審,大不了到時候

java8新特性,P2P金融項目,程序設計功能設計,架構師視頻教程

orm 入門到 mongo 1.0 asf cat 身邊 last opp 36套精品Java精品高級課,架構課,java8新特性,P2P金融項目,程序設計,功能設計,數據庫設計,第三方支付,web安全,高並發,高性能,高可用,分布式,集群,電商,緩存,性能調優,設計模式,

使用socket.io實現簡單的聊天功能

ins sock UNC say mes 輪詢 var document style Socket.io實際上是WebSocket的父集,Socket.io封裝了WebSocket和輪詢等方法 首先得在你的項目中安裝socket.io $ npm install sock

找回密碼功能設計

分享 設計 顯示 失效 time 驗證 table width 後臺 背景 一個大型網站平臺,用戶自主註冊難免會有用戶忘記密碼,因此需要提供找回密碼功能。 本方案是通過郵箱找回密碼。 需要的表結構 找回密碼表(FindPwdRecord): 字段名 類型

配送平臺軟件開發|配送管理系統開發功能設計

更多 自動 功能設計 多個 匯總 種類 設計 如何 制度 生鮮配送管理系統開發司科表示在日漸成熟的新零售商業模式推動下,消費者需求不斷擴大同城配送軟件服務內容越來越多樣化。越來越多的配送軟件出現在人們的日常生活中,那麽配送平臺軟件要如何設計才能有效解決傳統配送中的痛點呢?

權限功能設計

path 檢查 資源 代碼 bsp 掛載 源樹 枚舉 子節點 1、權限列表(定義為枚舉) 2、葉子功能節點 葉子節點 具有哪些權限?每個權限掛載幾個按鈕 預先在配置文件中設置好 3、授權 授予某個角色對某個codepath某個權限 UI設計 --