找到11298个回复
  • 爱特文管美化并增加代码高亮和纠错功能
    32812点击 / 2023-06-15发布 / 2023-06-15回复 / /
    @旧人,我用爱特文管
  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    顺便一提直播弹幕,我觉得最有趣的方法是直接把弹幕嵌在视频流的字幕轨里,这样只要前端加个字幕轨提取代码就行了。视频编码器那边,加字幕的工作交给切片服务器就行了,切片是很简单的工作,顺便混合一下字幕不会有什么额外开销。唯一的问题是审核,想删掉嵌入视频的弹幕比较困难

  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    @卷心菜,我与老虎讨论,老虎给我出了一个接近90%完美方案,还有10%是因为没有经过大规模实践不确定因素。

    大致就是: 微信私我,给你发我总结的原理截图

  • 爱特文管美化并增加代码高亮和纠错功能
    32812点击 / 2023-06-15发布 / 2023-06-15回复 / /

    @森森,你的我好像看到过,用的zui,不过好像不太符合我的审美

  • 爱特文管美化并增加代码高亮和纠错功能
    32812点击 / 2023-06-15发布 / 2023-06-15回复 / /
    嘿嘿,我原来也美化过
  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    @老虎会游泳,群聊风暴的问题,我是使用了group_id赋予群的内部编号,这样系统逻辑需要推送的时候,只要解析这个id就知道具体的分布式中的目标gateway的ip:port,这样就不会造成群惊了,
    IMG_9891.jpeg(45.95 KB)IMG_9892.png(164.18 KB)

  • yuzu能玩舞力全开不?
    13866点击 / 2023-06-15发布 / 2023-06-15回复 / /
    @老虎会游泳,可以用这,我买过,没用几次,手感不咋地但可以给joycon充电,十几块
    Screenshot_2023-06-15-18-48-44-498_com.xunmeng.pinduoduo-edit.jpg(102.78 KB)
  • golang的log包求助
    18042点击 / 2023-06-15发布 / 2023-06-15回复 / /

    目前发现,只要有- 或者> 就会这样,去掉就正常,
    用strconv.Quote()解决,因为特殊符号被转义为实体动作了,或者用log.printf(“%s”,str)解决

  • golang的log包求助
    18042点击 / 2023-06-15发布 / 2023-06-15回复 / /

    我问了一下gpt4,以下是gpt4的回复,从你的描述看,这个问题可能并不是一个 bug,而是因为 log.Println()fmt.Println() 对待参数的方式有所不同。

    log.Println() 函数会为每个参数调用 fmt.Sprint() 来生成输出的字符串。在你的第一个例子中,你传递给 log.Println() 的是一个字节切片(startInfo.Bytes()),fmt.Sprint() 会将这个字节切片转换为一个字符串,其中每个字节都被转换为其对应的十进制数值,这就是为什么你看到一串数字的原因。

    在你的第二个例子中,你传递给 log.Println() 的是一个字符串(startInfo.String())。这个字符串应该能正常打印出来,但是你说结果卡住了。这可能是因为你的环境或者终端有些问题,或者是因为 register.ListenAddr 中包含了一些非打印字符,导致在终端上看起来像是卡住了。

    你提到你已经设置了 log.SetOutput(file),并且在文件中的记录是正常的,这说明 log.Println() 是正常工作的。你可以尝试在不同的终端或者环境下运行你的程序,看看是否还会出现同样的问题。

    如果使用 fmt.Println() 没有问题,那么在这种情况下,你可以继续使用 fmt.Println() 来打印日志。如果你需要的是将日志写入文件,那么你可能需要使用 log 包,因为 fmt 包并没有提供设置输出的功能。

    另外,你也可以尝试一下 log.Printf() 函数,这个函数允许你指定一个格式字符串,可以更精确地控制输出的格式。例如:

    log.Printf("[%s] Starting  server at -> %s ;Listening...\n", register.Name, register.ListenAddr)
    

    这样,你就不需要使用 bytes.Buffer 来手动构建字符串了。

  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    QQ客户端和服务器之间有心跳机制,客户端通过周期性心跳上报,可知道什么时候需要拉消息或服务器知道什么时候推消息
    ~~~

  • yuzu能玩舞力全开不?
    13866点击 / 2023-06-15发布 / 2023-06-15回复 / /

    @hik,楼主说他switch坏了,joycon应该还能用。
    @胡图图,不过我很好奇你怎么给joycon充电

  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    @无名啊,直播间弹幕甚至可以像直播本身一样通过无状态HTTP服务器分发,按时间切片放在不同的json文件里,然后由一个列表(类似m3u8)不断列出最新的json文件名,由播放器自行下载展示。这样就能用分发直播视频流的渠道分发弹幕了。

  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    @无名啊,直播弹幕和群聊的不同点:

    1. 历史记录:如果对方发消息时你不在线,群聊允许你稍后接收消息,但直播就直接错过了。
    2. 连接数量:为每个直播间建立一个TCP连接是可接受的,但为每个群建立一个TCP连接似乎不可接受(你可能加入了几百个群)。所以群聊必须由服务器合并你收到的消息,但直播间不需要合并。
    3. 消息可达性:未收到某个群消息是不可接受的,但未收到某些弹幕完全可以。很多人气很高的直播间弹幕一屏根本放不下,都是裁剪后显示的,每个人都只收到了部分弹幕。
  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    @老虎会游泳,不是发一个弹幕,就要转发给其他 几十成百上千用户 咩。。

  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    @无名啊,因为每个直播都是一个单独的连接,不需要考虑多个群共享连接,所以采用CDN模型就行了,由一个中心服务器负责发送消息,然后逐级分发给全国CDN,每个人收到的消息都一样。发弹幕则是统一发给那个中心服务器。

  • yuzu能玩舞力全开不?
    13866点击 / 2023-06-15发布 / 2023-06-15回复 / /
    可以的,但是要joycon吧?
  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    yy几万人在一个频道即时聊天 当年可是行业翘楚

  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    @老虎会游泳,那直播弹幕那种呢?几十成百上千万用户直播间那种。。

  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /

    @卷心菜,是,所以QQ群有人数上限,就是为了避免单个群连接数太高服务器撑不住,以及形成广播风暴(每发一个消息就要转发给几千人这种)。限制为几百人是比较合适的。

    至于具体的实现,可以采用消息中继模型:

    1. 我只与负责我登录的服务器联系。群里的其他人各自在他们的服务器,和我可以不在同一个服务器。
    2. 每个群都有一个专门负责的服务器进行中继。
    3. 有人发消息时,先发给自己的服务器,然后自己的服务器把消息转发给对应群的中继服务器,中继再查找各个群成员在哪个服务器,并逐一转发。最后群里的所有人都收到了消息。
    4. 此时设置群成员上限就很有必要,否则每次发消息都相当于给所有服务器都发了一遍,形成广播风暴。
  • 有一个关于即时聊天的疑惑
    50246点击 / 2023-06-14发布 / 2023-06-15回复 / /
    楼主 @卷心菜 于 2023-06-15 20:01 删除了该楼层,理由如下:

    无关评论