好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > IM聊天教程之發送圖片/視頻/語音/表情

IM聊天教程之發送圖片/視頻/語音/表情

熱門標簽:銀川語音外呼系統中心 suitecrm 地圖標注 高德地圖標注常顯 臨沂ai電銷機器人招商 華創e路航彩票銷售點地圖標注 鶴壁外呼系統公司 外呼系統號顯示星號怎么看 承德地圖標注公司收費 揭陽電腦外呼系統公司

經常有朋友問起,如何在IM即時通訊中實現發送圖片、視頻、語音和表情?

為此,小編特意寫了一個vue版本的Demo,實現了圖片視頻文件和表情的的發送,參考這個Demo源代碼,相信你就可以輕松的用Uniapp和小程序完成類似的功能。

一、圖片/視頻/語音發送

對于語音、視頻和圖片的發送,您如果有注意的話,在使用QQ或者微信的時候,當有朋友發送圖片和視頻給您時,收到后,需要等一會兒才能顯示出來。就是因為在發送的時候,只發送了文件的路徑,您收到后,需要加載才能顯示出來。因為當前主流的IM包括微信,QQ等對于圖片和視頻的發送,通常的做法都是:

  • 上傳文件到文件服務器
  • 推送文件路徑
  • 收到文件路徑
  • 加載文件

并不會通過網絡直接傳送源文件,因為對于大文件的傳輸,會影響消息的即時性。

對于文件的上傳,您可以選擇直接上傳到您自己的服務器,也可以選擇上傳到各種云服務的對象存儲服務,也就是OSS上。

參考源碼:

DemoService.prototype.sendFileMessage = function (type,content) {
  let uploadResult = restapi.uploadFile(content);
  let message = new Message(type, uploadResult.url);
  uploadResult.promise.then(() => {
    this.publish(message);
  },() => {
    var error = new Message(MessageType.TEXT, "文件上傳失敗.");
    this.messages.unshift(error)
  });
  return uploadResult.promise;
};

云服務的OSS具有更好的穩定性和高可用性,上傳的速度也有保證,另外也可以和CDN配合,所以我們建議用GoEasy配合OSS服務來實現圖片和視頻的發送。

在本文的源碼里,選擇了使用阿里云的OSS作為文件上傳服務器,您也可以切換為您自己實現的文件上傳服務器,或者選擇其他云服務的OSS,原理都是一樣的。

二、發送表情

表情的發送也是非常簡單的,只是對于一些第一次實現表情發送的同學來說,需要一個思路而已。

細心點的朋友,肯定有發現,當我們在QQ上聊天的時候,我們輸入一個反斜杠+“cy”, 就像這樣:/cy ,QQ就會立即顯示為一個呲牙的表情,就像下圖一樣:

哈哈哈,相信你已經心里已經明白了十之八九了,對吧?

沒錯,表情在發送的過程中其實就是發一個像“/cy”這樣定義好的的字符串,在對方收到后“翻譯”成表情而已。

那為什么不直接發圖片,而要進行這么復雜的“翻譯”呢?

因為字符串比圖片更小,發送的速度更快,用戶體驗更好。一個系統中的用戶成千上萬,用字符串可以節約大量的帶寬,節約系統資源。

原理講明白了,我們就開始干活兒吧:

第一步、定義表情

定義一個key value的對象,key作為表情標簽,value則為每個表情標簽對應的圖片:

let expressions = {
  "[risus]": './images/risus.png',
  "[kiss]": './images/kiss.png',
  "[cry]": './images/cry.png',
  "[die]": './images/die.png',
  "[anger]": './images/anger.png',
}

然后畫一個表情選擇的界面:

第二步、選擇表情

為每個圖片的onclick事件中傳入這個表情的字符串標簽,當用戶點擊的時候,將表情的標簽寫入輸入框,就成為了一個普通的字符串。在發送的時候,發送的其實就是這個表情的標簽,也就是一個字符串。

div class="goeasy-expression">
      div :class="[appearanceClass, 'goeasy-appearance']" @click="show = true">{{text}}/div>
      div class="expression-container" v-show="show">
        div class="expression-icon-content">
          div class="expression-icon__item"
             v-for="expression in list"
             :key="expression.id"
             @click="selectExpression(expression)">
            img :src="expressions[expression.tag]">
          /div>

        /div>
        div class="close-expression" @click="show = false">/div>
      /div>
    /div>

第三步、收到表情和展示表情

當對方收到一個字符串后,跟第一步定義的key-value列表去匹配,如果能找到對應的表情,就在頁面上展示對應的表情圖片,如果找不到,就是一個普通的文本信息。

原理講清楚了后,具體實現是不是很簡單了?

參考我們提供的Demo源代碼,相信你很快就能掌握實現方法。

Demo源碼:https://gitee.com/goeasy-io/GoEasyDemo-vue-AudioPictureVideo

總結

到此這篇關于IM聊天教程之發送圖片/視頻/語音/表情的文章就介紹到這了,更多相關IM聊天發送視頻內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Websocket IM聊天教程 教你用GoEasy快速實現IM聊天
  • 使用Python AIML搭建聊天機器人的方法示例
  • Android中基于XMPP協議實現IM聊天程序與多人聊天室
  • 基于Python如何使用AIML搭建聊天機器人
  • php版小黃雞simsimi聊天機器人接口分享
  • JavaScript/jQuery、HTML、CSS 構建 Web IM 遠程及時聊天通信程序

標簽:棗莊 三沙 咸寧 許昌 萊蕪 七臺河 忻州 汕尾

巨人網絡通訊聲明:本文標題《IM聊天教程之發送圖片/視頻/語音/表情》,本文關鍵詞  聊天,教程,之,發送,圖片,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《IM聊天教程之發送圖片/視頻/語音/表情》相關的同類信息!
  • 本頁收集關于IM聊天教程之發送圖片/視頻/語音/表情的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 女性向?片在线观看拒绝改写| 1204曰韩欧美成人看片| 麻豆精品人妻无码一区二区三区| 国产一区二区三区免费大片的特点 | 国产对白俱乐部交换在线播放| 亚洲天天做日日做天天欢AV| 甜文1V1荤肉辣文| 欧美扯胸罩吻胸揉屁股揉下面视频| 美女一级毛片免费不卡视频| 亚洲黄色在线播放| 383tv直播下载安装方法| 最新国产露脸在线观看| 久久精品2021国产| 揉我奶头?啊?嗯高潮A| 免费b站看大片真人直播| 中国偷窥妇wc| 国产又色又爽又黄又免费| 韩国A片在线观看19???排行| 欧美色偷拍| 啊灬啊灬别停啊灬用力啊免费| 国产精品JlZZ在线观看麻豆| 欧美日韩专区国产精品| 女爱人电影| 性猛交ⅩXXXXX小妓女| 精品欧美Av无码久久久KTV| 全文都是肉高h按摩技师| 动漫毛片???| 一本久道视频一本久道视频| 免费60分钟床上色视频a| 好男人社区www在线观看高清| 91天堂精品搭讪素人系列| 中国精品女厕toilet22| 高h宫交h黄暴受孕| 色老板路线| ??国产免费叼嘿网站免费| 久久国产精品永久免费网站| 国防科大回应近期网络传闻| 免费高清日本完整版| 被带到满是x玩具的房间挑调游戏| 国产网站麻豆精品视频| 日本水蜜桃身体乳的美白效果 |