Git Product home page Git Product logo

vue-chat's Introduction

vue-chat

野火IM解决方案

野火IM是一套跨平台开源的即时通讯解决方案,主要包含以下内容。

GitHub仓库地址(主站) 码云仓库地址(镜像) 说明 备注
im-server im-server IM Server
android-chat android-chat 野火IM Android SDK源码和App源码 可以很方便地进行二次开发,或集成到现有应用当中
ios-chat ios-chat 野火IM iOS SDK源码和App源码 可以很方便地进行二次开发,或集成到现有应用当中
pc-chat pc-chat 基于Electron开发的PC 端
web-chat web-chat 野火IM Web 端, 体验地址
wx-chat wx-chat 小程序平台的Demo(支持微信、百度、阿里、字节、QQ 等小程序平台)
app server app server 应用服务端
robot_server robot_server 机器人服务端
push_server push_server 推送服务器
docs docs 野火IM相关文档,包含设计、概念、开发、使用说明,在线查看

前置说明

  1. 本项目所使用的Web SDK是需要付费的,且依赖于专业版 IM-Server,价格请参考费用详情
  2. Web SDK专业版 IM-Server都支持试用,具体请参考试用说明
  3. 本项目默认只能连接到官方服务,购买或申请试用之后,替换Web SDK,即可连到自行部署的服务

联系我们

商务合作请优先采用邮箱和我们联系。技术问题请到野火IM论坛 发帖交流。

  1. heavyrain.lee 邮箱: [email protected] 微信:wildfirechat
  2. imndx 邮箱: [email protected] 微信:wfchat

问题交流

  1. 如果大家发现bug,请在GitHub提issue
  2. 其他问题,请到野火IM论坛进行交流学习
  3. 微信公众号

体验

  1. PC Web 端

    在线体验野火IM Web版

  2. 手机Web/H5 端

    请使用微信扫描下方二维码,体验野火IM 手机Web/H5 端

    野火IM

截图

分支说明

  1. master:基于Vue 3开发,是未来的开发重心
  2. vue2:基于Vue 2开发,进入维护模式,不再开发新功能,鉴于Vue 2已经终止支持且不再维护,建议客户升级到Vue 3版本

开发、打包依赖

  1. nodejs v18.19.0
  2. npm 10.2.3

注意避免使用cnpm,我们使用cnpm出现过一些奇怪问题的情况。如果您使用cnpm当遇到问题时请切换到npm试一下。

开发

npm install
npm run serve
浏览器访问: http://localhost:8013

// 如果需要 https 访问的话(要求 app-server 和 im-server 都配置了 https),请执行:
npm run serve-https 

打包

$ npm install
$ npm run build

压缩/混淆配置说明

  1. wfc目录整体不能压缩
  2. config.js不能压缩

音视频

默认附带免费版本音视频,关于野火音视频可以参考野火音视频使用说明野火音视频简介。如果使用音视频高级版,请参考音视频高级版切换方法

License

  1. Under the Creative Commons Attribution-NoDerivs 3.0 Unported license. See the LICENSE file for details.

vue-chat's People

Contributors

cfmj avatar heavyrain2012 avatar imndx avatar siqiii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

vue-chat's Issues

引入TextMessageContent报Super

Super expression must either be null or a function
集成到自己项目单独调发送消息报这个
新建了一个vue项目调用单独引入这个也报相同的错误

inherits.js?262e:4 Uncaught TypeError: Super expression must either be null or a function
at _inherits (inherits.js?262e:4:1)
at eval (ptextMessageContent.js?96c7:9:1)
at eval (ptextMessageContent.js?96c7:9:1)
at Module../wfc/messages/ptextMessageContent.js (app.js:1868:1)
at webpack_require (app.js:849:30)
at fn (app.js:151:20)
at eval (messageConfig.js:8:87)
at Module../wfc/client/messageConfig.js (app.js:1352:1)
at webpack_require (app.js:849:30)
at fn (app.js:151:20)

打开voip调试模式

打开voip调试模式时,voip window不会自动关闭,方便分析控制台日志,需要手动关闭

ENABLE_VOIP_DEBUG_MODE = true;

打开voip调试还是会自动关闭页面。
域名后面有有层级有关系吗?

自定义消息转码错误

需求:
想要自定义群组通知消息在decode时发生"'atob' failed: The string to be decoded is not correctly encoded"
消息是由 app server 使用 MessageAdmin.sendMessage 想在聊天室做出群组的通知消息

结果:
image

继承GroupNotificationContent:
image

decode错误位置:
image

错误訊息:
image

音频通话问题

  1. 网页语音主叫,弹出语音通话页面(已允许授权), android端点击接听按钮后, 网页端语音页面会直接关闭.
  2. android端语音主叫, 网页端弹出语音页面, 接听后, 语音界面还在, 但是通话没有声音.(已按页面提示授权)

想实现群二维码

请问一下,现在是否已有现成的api可以怎么使用
或是在app server实现 大概流程会怎么实现

請問如何自定义讯息?

目前在app server中群发自定义事件 MessagePayload type = 1001
store.js 中的 EventType.ReceiveMessage 有印出自定义讯息
image
现在不确定怎么在聊天列表取出这则讯息 劳烦提点 感谢

微信浏览器(从微信聊天中点击的链接跳转的浏览器)媒体流回调兼容性问题

1.触发点击事件开启全屏的同时跳转页面(加了5秒延时和不加延时跳转),无法收到流回调;
2.在跳转页面前不开全屏,在跳转页面后(beforCreate、created、mountd)开全屏,无法收到流回调
3.使用点击事件,第一次执行全屏,第二次执行跳转,两次点击非常快速或延时点击第二次都试过,能收到流回调;

拉流端收不到回调,日志没有错误

推流端有错误日志如下:
b7c3a50f2cb92ce014cc29cd2a9c349

有考虑用vue3重构吗?

项目架构似乎有些旧了,api接口没有统一管理
如果相同接口在多个页面调用,修改这个接口时就要同时修改多个页面

希望用vue3重构,祝好

期望增加功能

希望在群聊天中增加右键点击群成员头像直接@的功能。

会话同步问题

我们测试 vue chat 这个项目出现一个会话同步问题,另一个 web caht 我们没测试,所以不知道是 vue chat 这个项目的问题,还是 web sdk 的问题,情况如下:

如果登录web端后,已经在聊天的会话会正常收到消息。但是如果在 Web 端把这个会话删除,客户发过来的消息 web 端就收不到了,但手机端的会话即使删除也可以正常收到对方发过来的消息。

当 Web 端的会话删除后,我们在手机端主动回复,Web 端的会话也是不会自动同步。

目前这个问题仅在 vue chat 中出现,web chat 没有测试。

sdk缺少方法proto.getOneFriendRequest

    /**
     * 获取单条好友请求
     * @param {string} userId 对方的用户id
     * @param {boolean} incoming 是否是收到的好友请求
     * @return {FriendRequest|null}
     */
    getOneFriendRequest(userId, incoming = true) {
        return impl.getOneFriendRequest(userId, incoming);
    }

proto.min.js,没有找到这个方法,sdk没这个方法

另外,建议sdk加个查看版本的方法,可以方便查看版本号,再仓库加个sdk change log列表

会话数据一一直在减少

image

当前数据是调用stroe.js中的_loadCurrentConversationMessages方法,再调用wfc.getMessages()获取的数据.
目前是17条,每隔一段数据刷新页面,重新调用_loadCurrentConversationMessages获取当前会话记录的时候就会发现数据变少了,最后数据为0.

image
10分钟后,数据就没有了

import失败,提示export 'default' (imported as 'impl') was not found in '../proto/proto.min'

原因是proto.min.jsbase64.min.js不需要通过babel转换,需要在babel的配置文件中将这两个文件忽略。

.babelrc参考配置如下:

{
 "presets": [
   ["env", {
     "modules": false,
     "targets": {
       "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
     }
   }],
   "stage-2"
 ],
 "plugins": ["transform-vue-jsx", "transform-runtime"],
 "ignore": [
   "**/base64.min.js",
   "**/proto.min.js",
   "**/engine.min.js"
 ]
}

好友备注的显示问题

为一个好友设置备注:
1,在此好友的会话界面,会话列表显示的还是昵称,会话的顶端显示的备注名,应该都显示为备注名
2,在联系人列表界面,查看此好友的用户详情,没有显示昵称,备注名显示在了昵称的位置

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.