mesh服务二次开发问题

frfr46467979 21天前 152

        //如果本域的对象存储服务无法让其他域的用户直接访问,这里需要把文件异步传输到其他域中,且这里修改一下文件的地址。需要新写传输文件的方法。

这是你们写的注释。 我有几个疑问:如果在一个群聊里,发送了一条文件消息,这个回调会触发几次? 如果A在一个群里(群内包含5个其他域的成员)发送了一个文件,convertMessagePayloadDomainId 这个函数会触发几次? 如果触发5次的情况下,怎么保证文件只上传一次?

最新回复 (10)
  • x86 21天前
    引用 2楼
    1次
  • frfr46467979 20天前
    引用 3楼
    我还有一个疑问:
    这个方法convertMessagePayloadDomainId,是在本域触发的还是跨域触发?
    A给B发消息
    是A域会触发这个函数还是B域会触发这个函数?
  • frfr46467979 20天前
    引用 4楼
    还有一个问题:
    如果A在一个群里(群内包含5个其他域的成员)发送了一个文件,群内包含3个域的人。
    convertMessagePayloadDomainId 这个函数会触发几次?如果只触发一次,怎么能知道要上传到哪个域去?
  • frfr46467979 20天前
    引用 5楼
    补充问题描述:群内有5个其他域的人,但是这5个人在3个不同域中
  • HeavyRain 20天前
    引用 6楼
    有2种情况,一种是A domain的用户发送给B domain中的群,那么A域 send message request 到B 域,然后B 域处理完本域中的用户后,再publish 到其他域,比如C域,如果有非A域的用户,也会publish到A域。
    另外一种情况是A域中的用户发送到A域中的群,处理完本域内的用户后,再publish 到其他域,比如B域、C域,

    每一次跨域请求都会调用一次convertMessagePayloadDomainId,比如第一种情况,A发送消息到B域,会有一次调用,然后B域调用C域用一次,调用A域(如果有A域的其他用户)也会调用一次
  • frfr46467979 20天前
    引用 7楼
    我理解一下你说的情况:
    场景是:A给B域的群发送消息(群内有ABCD四个域的人)。那么A在发送消息的时候会在A的mesh服务执行一次convertMessagePayloadDomainId ,B域收到后处理又会分发一次给A C D ,是这个意思吗?
    如果是我说的这样,那文件发送是否有问题?比如 A 在发文件的时候,已经调用A域im的minio上传了文件,第一次触发A域convertMessagePayloadDomainId 的时候往B域的minio存了一份,B收到后分发给ACD时又往A里存了一份文件,会不会出现这种情况?
    还是我理解错了机制?
  • HeavyRain 19天前
    引用 8楼
    场景是:A给B域的群发送消息(群内有ABCD四个域的人)。那么A在发送消息的时候会在A的mesh服务执行一次convertMessagePayloadDomainId ,B域收到后处理又会分发一次给A C D ,是这个意思吗?
    是的

    如果是我说的这样,那文件发送是否有问题?比如 A 在发文件的时候,已经调用A域im的minio上传了文件,第一次触发A域convertMessagePayloadDomainId 的时候往B域的minio存了一份,B收到后分发给ACD时又往A里存了一份文件,会不会出现这种情况?
    最新代码加上了发送文件,回到原来域时,会使用原来域的地址,不会再多保存一份
  • frfr46467979 19天前
    引用 9楼
    我有一个问题,我用的是野火的minio,是不是在你们新版的mesh服务上配置minio的地址就可以了?
  • frfr46467979 19天前
    引用 10楼
    # 对象存储服务(minio)配置。必须配置,因为其他域的对象存储如果不公开,对方会把文件传输过来,需要上传到本方的对象存储服务
    minio.endpoint=http://localhost:9000
    minio.access_key=minioadmin
    minio.secret_key=minioadmin

    你们新的代码上加了这个配置,我是不是直接把im里用的minio配置上去就可以了?
  • HeavyRain 17天前
    引用 11楼
    是的,但格式有所不同,bridge里的是 media.bucket_file_name=media 这种,IM里是 media.bucket_file_name media 这种格式,要注意格式
返回