产品创意:一种信息可回调的聊天 APP - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
franklinre
V2EX    奇思妙想

产品创意:一种信息可回调的聊天 APP

  •  
  •   franklinre 2022-10-10 22:30:53 +08:00 4105 次点击
    这是一个创建于 1177 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在我们的消息都是单向的,例如邮件,信息发送给对方,必须等待对方发送回来,我们才能收到信息。
    这样在某些情况就会比较麻烦,例如:给 A 发送信息,等待 A 的回复后,再给 B 发送信息。
    如果我可以给 A 发送信息时,把回调方法插入信息中,要求 A 完成这个回调,这个回调会给 B 发信息。这样我是不是就不用等待了呢?
    27 条回复    2022-10-16 21:16:00 +08:00
    IvanLi127
        1
    IvanLi127  
       2022-10-10 22:35:40 +08:00 via Android
    我觉得可以考虑委托 A 给 B 发送消息。
    如果 B 不相信 A 说的话,可以把 B 的一个秘密告诉 A ,让 A 向 B 发消息前和 B 交换并验证这个秘密。
    这样一来,你就完全解脱了。
    dcty
        2
    dcty  
       2022-10-10 22:41:29 +08:00
    拉个群啊,手动狗头。
    Jooooooooo
        3
    Jooooooooo  
       2022-10-10 23:00:17 +08:00
    你想要的是不是邮件的抄送功能?

    回复邮件抄送都会收到的.
    debuggerx
        4
    debuggerx  
       2022-10-10 23:03:56 +08:00 via Android
    消息发给了 A 然后设置好了所谓的回调自动发送给 B 结果 A 回的消息是“B 是大傻 X”……
    hanbing135
        5
    hanbing135  
       2022-10-10 23:05:24 +08:00 via Android
    这不就是抄送吗
    darkengine
        6
    darkengine  
       2022-10-11 01:32:21 +08:00
    If this then that

    其实是收到 A 的回复信息后,触发给 B 发信息这个动作 (发给 A 、B 的信息不一定相同)。
    benzlucy
        7
    benzlucy      2022-10-11 04:12:44 +08:00
    有点意思 还可以让群主灵活设置群规则 比如把群设置成圆桌游戏 必须上家发言、操作结束或超时 下家才可以发言 妥妥的 元宇宙社交
    binux
        8
    binux  
       2022-10-11 07:06:38 +08:00 via Android
    你需要一个 workflow 管理系统,消息只是载体。
    dunn
        9
    dunn  
       2022-10-11 07:54:55 +08:00 via iPhone
    楼上的回复笑到了
    kop1989smurf
        10
    kop1989smurf  
       2022-10-11 08:12:50 +08:00   3
    楼主的程序设计功夫不到家。

    1 、发给 A 与发给 B ,其实是完全没有耦合关系的。
    2 、把执行逻辑带给 A ,IO 开销浪费。
    3 、原本是可信任信息(本地 sendB 逻辑),变成了不可信任(由 A 执行的 sendB ,A 是否会篡改 sendB 不可预知)
    4 、犯了和显卡界“光追”一样的错误:将开销转移给了本不应负责的人。( sendB 原本是楼主的责任)

    所以,这个需求我的设计,是 sendA 的同时附上消息 ID ,同时监听本消息 ID 的回复。
    针对回复再次触发 sendB 命令。
    Veneris
        11
    Veneris  
       2022-10-11 08:32:47 +08:00
    你需要 ai 替你处理邮件
    lululau
        12
    lululau  
       2022-10-11 08:40:00 +08:00 via iPhone
    我给 a 发消息,a 还可以回给我,拜托,这个叫双向,考虑到中间可能还有服务器,这个还可以叫四向
    franklinre
        13
    franklinre  
    OP
       2022-10-11 09:05:14 +08:00
    @kop1989smurf 别太认真看待我举的例子。
    我是说现在的聊天 app 的消息都是单向的文本,就像我们代码里的 string ,既然可以发 string ,为什么我们不能把函数,逻辑,代码,也当作一种新的消息形式发送给对方呢?
    只有 string 也太单调了。
    A 可以回调方法,我可以把这个回调当作数据发送给 B ,B 也可以发送给其他人。可以应对某些需求。
    kop1989smurf
        14
    kop1989smurf  
       2022-10-11 09:10:15 +08:00
    @franklinre #13
    谁说现在的 IM 只能发字符串的?你给他发个.bat ,发个.dll ,发个.exe ,甚至发个.java 不就达成了?
    kop1989smurf
        15
    kop1989smurf  
       2022-10-11 09:15:55 +08:00
    @franklinre #13
    反之,如果你说的是必须自动执行,那不叫聊天,叫挂马。
    wangerka
        16
    wangerka  
       2022-10-11 09:23:07 +08:00
    我给某人发一条消息可以是:function (done){return dOne== 1 ? "好啦":"还没做完"}。对方在消息里输入 1 ,我就能收到“好啦”。是这个意思吗?
    firechat
        17
    firechat  
       2022-10-11 09:29:24 +08:00
    这个功能很好实现吧,就把这个功能叫做 接力发送 吧,
    O 在与 A 的聊天窗口点 接力发送,弹出一个框,输入发给 A 的消息内容及选择自动发送人 B 及发送给 B 的内容,点发送。这时调用到业务服务,业务服务记录下,然后调用 server api 发到 O 和 A 的会话。
    当 A 收到消息后,点击消息打开内容,点确认或者输入消息回复,这时调用业务服务,业务服务调用 server api 把要发送给 B 的内容发到 O 和 B 的会话内。

    可以继续扩张,输入多个用户,每一个都等上一个人确认后再发送。

    实现功能并不难,但好像就是没有什么用。
    firechat
        18
    firechat  
       2022-10-11 09:32:24 +08:00
    受楼上启发,发送的消息还可以加上菜单,比如完成,未完成或者其他菜单,然后回复再根据不同条件回复对应消息
    franklinre
        19
    franklinre  
    OP
       2022-10-11 09:46:28 +08:00
    @firechat 功能肯定有很多种方式实现,我想表达的是,现在的 IM 的消息形式太单调了,可以在上面做点文章。如果把两个用户比作两个函数方法的话,方法之间不能只是发送文本,文件,语音等的拷贝吧?应该还能发送变量引用,回调吧?
    HeyWeGo
        20
    HeyWeGo  
       2022-10-11 09:50:21 +08:00
    Telegram bot ?
    firechat
        21
    firechat  
       2022-10-11 09:53:12 +08:00
    @franklinre 这个也可以的,请求的数据中加上 js 代码,等对方回复后,在业务服务执行 js 代码,理论上可以做任何事。
    firechat
        22
    firechat  
       2022-10-11 09:56:30 +08:00
    这个功能很好实现吧,就把这个功能叫做 智能发送 吧,

    O 在与 A 的聊天窗口点 智能发送,弹出一个框,输入发给 A 的消息内容及 JS 代码,点发送。这时调用到业务服务,业务服务记录下,然后调用 server api 发到 O 和 A 的会话。
    当 A 收到消息后,点击消息打开内容,点确认或者输入消息回复,这时调用业务服务,业务服务启动 js 环境执行 js 代码,js 代码可以分析处理 A 的回复内容,然后发送消息到 O 和 B 的会话,或者做其他事情。
    kongkx
        23
    kongkx  
       2022-10-11 10:16:14 +08:00 via iPhone
    这是 要 内嵌 widget ,还是 各种 bot ?
    frzh
        24
    frzh  
       2022-10-13 18:50:35 +08:00
    发送了一个病毒
    dangyuluo
        25
    dangyuluo  
       2022-10-14 07:24:01 +08:00   1
    然后 A 说:这个信息千万不能发给 B !
    laravel
        26
    laravel  
       2022-10-14 19:54:55 +08:00
    类似 mqtt 5 里的 response topic?
    Pantheoon
        27
    Pantheoon  
       2022-10-16 21:16:00 +08:00
    1.如果能发送函数,那必定依赖程序语言,不是所有语言的函数都能序列化
    2.安全性会是个很大的问题,尤其是 A 故意发送恶意代码
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:16 PVG 18:16 LAX 02:16 JFK 05:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86