Coder Social home page Coder Social logo

webim's Introduction

React Demo(WebIM)介绍

更新时间:2023-04-10


新增群组Mentions 功能, 使用Antd Mentions组件

实现方案:

文本消息新增扩展字段em_at_list, 表示被@的用户ID,

  • 'ALL' 表示@所有人
  • ['userId', 'userId2'] 表示@指定用户
const MENTION_ALL = 'ALL';
let mentionList = ['userId', 'userId1'];
let isMentionALl = true

let txt = {
	to: 'groupId',
	chatType: 'groupChat',
	msg: '@user 你好',
	type: 'txt',
	ext: {
		em_at_list: isMentionALl ? MENTION_ALL : atList
	}
}

收到文本消息, 如扩展字段包含em_at_list则表示为@消息, 如果em_at_list包含当前用户,则进行UI更新

// onTextMessage回调中
let mentionList = message?.ext?.em_at_list
// 如果存在mentionList, 并且不是当前用户多端同步的消息
if(mentionList && message.from !== WebIM.conn.user){
	// 如果是@所有人或者mentionList包含当前用户ID
	if(mentionList === MENTION_ALL || mentionList.includes(WebIM.conn.user)){
		// 则进行UI更新
	}
}

更新时间:2022-07-15


环信即时通讯 WEB 端提供示例应用可供体验。为方便体验,建议使用你自己的 Demo 应用,具体步骤如下:

  1. 环信即时通讯云 IM 管理后台 通过邮箱注册,可以看到默认的 Demo 应用(默认应用是全功能开通的应用);

  2. 在上图页面 Demo 应用右侧点击 查看,选择 开放注册

img

  1. 打开 Demo,点击 服务器配置

  2. 将 Demo 的 App Key 填入,点击 保存配置

  3. 然后点击 注册用户 进行体验。

注意

注册模式分两种,开放注册和授权注册。只有开放注册时,才可以客户端注册。

  • 开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号;
  • 授权注册的流程应该是你的应用服务器通过环信提供的 REST API 注册,之后将 token 保存到你的应用服务器或返回给客户端。

代码下载

欢迎大家提交 PR 改进和修复 WebIM 中的问题。

运行 WebIM 工程

IM SDK 及 Demo 下载 下载 WEB SDK 压缩包,然后解压。解压后在 demo 文件夹下,即为 WebIM 的工程目录。

  1. 初始化安装

    • 在/demo下执行 npm install
  2. 运行demo

主要模块介绍

Demo 中有几大模块

  • components —— 项目中定义的组件
  • config —— SDK 初始化配置
  • containers —— 容器组件,包含 contact, chat, login/regester
  • layout —— chat 部分的布局
  • selectors —— 缓存数据,优化性能
  • utils —— 数据库和工具方法

webim's People

Contributors

chengxiuning avatar davidyangss avatar easezy avatar hq-610 avatar leopku avatar lizg001 avatar luleiyu avatar myzhangdong avatar qwk-001 avatar stliu avatar sunylt avatar wangying-sarah avatar wk3368 avatar wster11 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webim's Issues

可以拆分自定义的功能模块吗?

目前我们的这个SDK只用到了聊天,其他功能模块都没有用到,所以只想抽离其中的聊天功能就可以了,其他类似,加好友,群组之类的,不需要。抽离的主要原因是,目前引入完整的SDk就算用了cdn也还是达到50多KB,所以能麻烦可以精简一下吗?或者有什么途径方案 @myZhangDong

没法进行群组管理。

branches dev 虽然修改了无法发送表情的bug,但是没法申请进群,一直显示在已经在群组中,也没法拉人进群, 报错信息如下

本地调试 3.0 版本 无法正常登陆到 控制台 需要平台的帮助

开发环境信息

☁ demo [dev_3.0] ⚡ node -v
v18.9.1

项目版本

demo [dev_3.0]

操作步骤

1.在demo/src/config 更换 WebIMConfig.js 中的 appkey echo MTE2MzE3MTAyNjExNTc1MyUyM2RlbW8= | base64 --decode
2.npm install
3.HTTPS=true npm start
4.访问:https://localhost:3001/#/login
用户名:123456 密码:123456(已在环信后台创建)

出现的问题

输入用户名与密码 会在浏览器当中 显示登录成功,但是实际上不能够进行跳转
界面显示截图如下

image

image

image

启动npm start报错

Module not found: Can't resolve 'easemob-webrtc' in 'E:\project\huanxin\webim-master\demo\src\config'

npm start启动报错

  1. 执行npm start时如果出现

执行了npm link easemob-websdk还是报错同样的错

vue项目通过npm安装3.0.2,项目启动后有警告

Starting dev server...

WARNING Compiled with 2 warnings 13:55:33

warning in ./node_modules/easemob-websdk/webimSDK.js

1:263-264 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

warning in ./node_modules/easemob-websdk/webimSDK.js

1:292-296 Critical dependency: the request of a dependency is an expression

Listening at http://localhost:8090
image

WebIM.message is not a constructor

// 创建文本消息
var msg = new WebIM.message('txt', id);

报错:WebIM.message is not a constructor

版本:官网下载的webIM3.0.0

webrtc 报错

react、https,按照 demo 的方法配置之后,接收语音呼叫时报错,如下:

iShot2020-03-2710 29 14

怎么运行demo

在/demo下执行 npm i npm install
demo/ 下又没有 package.json 文件,要安装什么

多实例登陆异常

在一个页面里想实现多个账号同时登录,new 多个connect时,无法使用。另外能否把源码公布下,bug也好自己改,前端代码藏着有啥意义?

web聊天记录获取

  • 你们返回的提供的聊天记录是一个文件接口呀,我下载了文件,我应该如何把对应的json 文件注入到页面呀?

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.