国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

多線程基于Mybatis框架下的聊天對話程序

2019-11-08 18:22:46
字體:
供稿:網(wǎng)友

前一陣子在網(wǎng)上看了很多文章,學(xué)習(xí)了Mybatis框架,自己寫了個含有5個功能的聊天程序 (1)登錄,注冊 (2)上下線通知(數(shù)據(jù)庫中包含的用戶上線后,廣播通知給已經(jīng)在線的用戶) (3)消息轉(zhuǎn)發(fā),實現(xiàn)用戶之間的聊天 (4)留言 (5)用戶自己退出,或異常退出,服務(wù)端不報異常

我的實現(xiàn) 1.登錄注冊 (1)登錄需要檢索數(shù)據(jù)庫中的用戶,密碼成功則登陸成功,密碼錯誤則重新登錄 (2)注冊需檢索已存在的用戶,若已經(jīng)存在注冊的用戶名,則需要重新注冊,若不存在,注冊成功 (3)JSON字符串的使用 (4)mybatis的使用,連接數(shù)據(jù)庫,檢索 相關(guān)代碼: 客戶端: 這里寫圖片描述

服務(wù)端: 這里寫圖片描述

2.上下線通知 當有用戶成功登錄后,將用戶存放在一個Map表中,每當有用戶上線,遍歷map表,將用戶上線消息發(fā)送給每個客戶端 服務(wù)端: 這里寫圖片描述

3.消息轉(zhuǎn)發(fā) 若輸入框有消息,則詢問消息發(fā)送給誰,遍歷map表,用戶存在則發(fā)送給相應(yīng)的socket。 客戶端: 這里寫圖片描述 服務(wù)端: 這里寫圖片描述

4.留言: 若輸入框有消息,則詢問消息發(fā)送給誰,遍歷map表,用戶存在則發(fā)送給相應(yīng)的socket。若不存在,將相應(yīng)的留言消息,和用戶名存入map2,若離線用戶上線,發(fā)送相應(yīng)的留言消息,上線用戶即可接受留言消息 服務(wù)端: 這里寫圖片描述

5.退出 輸入bye則用戶下線,廣播通知所有在線用戶,若為異常退出,服務(wù)端接受異常下線消息 服務(wù)端: 正常下線: 這里寫圖片描述

異常下線: 這里寫圖片描述

總結(jié): 這個小項目耗時3天: 最初使用jdbc連接數(shù)據(jù)庫,后來了解到Mybatis,則修改了部分代碼。 遇到了很多問題: (1)經(jīng)常在PRintWrite 后的參數(shù)忘記加true 沒有刷新,客戶端怎么都接受不到消息 (2)這個程序后來修改為NIO,則運用到了緩存區(qū):發(fā)現(xiàn)接收到的JSON字符串格式不對,原來緩存區(qū)不會清空,后來解決了 還有很多小問題,都解決了,這個是第一個自己做的完整的程序,完成的過程中,熟練了IO,和NIO,明白了緩存區(qū),通道等含義

歡迎大家提出問題,一起進步! 準備著手學(xué)習(xí)javaweb,去看書了~~~


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平远县| 徐州市| 宣威市| 江北区| 泽库县| 眉山市| 柳河县| 富顺县| 林芝县| 博爱县| 上林县| 桓仁| 三河市| 胶南市| 江津市| 洛阳市| 和龙市| 沭阳县| 聊城市| 沂南县| 和政县| 宁明县| 湖州市| 兰西县| 三河市| 永丰县| 堆龙德庆县| 邛崃市| 涪陵区| 平塘县| 古蔺县| 离岛区| 霍城县| 永定县| 连州市| 贵阳市| 武安市| 阳谷县| 十堰市| 香港| 招远市|