V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sd
V2EX  ›  程序员

不同技术解决同一问题的烦恼。

  •  
  •   sd · 2018-06-19 02:31:01 +08:00 · 3205 次点击
    这是一个创建于 2379 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个问题一直围绕着我。每次在做技术调研的时候,我都在想有没有一个网站能把解决一个问题(好比授权这个问题)的可能的技术手段给出一个 list

    刚刚这个问题又冒出来了。

    之前我在自己搭建 readthedoc 的时候接触到 webhooks。在做前端页面的时候接触过 websocket。

    一个小时前,我看 DropBox 的 developer reference 的时候又看到了 webhooks。然后我点开看了一眼。上面写着

    Webhooks are a way for web apps to get real-time notifications when users' files change in Dropbox.

    这个 real-time notifications,让我想到了 websocket。于是我简单的 google 了一下 webhooks vs websocket。结果是什么并不重要。

    有没有一个网站可以回答:“如果你想做一个 real-time notification,你必须知道些什么,之前我们用什么技术,现在用什么技术,这些技术正在被提出但还没有大范围被应用”。这样的问题。

    10 条回复    2018-06-19 14:49:40 +08:00
    johnnie502
        1
    johnnie502  
       2018-06-19 05:16:44 +08:00
    没有这种网站,如果有的话,咨询公司都可以关门了
    jadec0der
        2
    jadec0der  
       2018-06-19 05:41:45 +08:00
    这个问题的答案不应该是 websocket, polling, long polling 吗,正常人都可以找公司里资深一点的同事问,你为什么找不到人问我就不知道了。

    能像这么被清晰定义的问题不多。这个问题这么大,答案这么少是因为于浏览器极高的兼容性要求,前后端交互发展的很慢。随便找个后端的问题你都不知道这个答案该怎么写
    watzds
        3
    watzds  
       2018-06-19 05:54:27 +08:00 via Android
    Webhooks 是主动调用吧,普通浏览器用户哪有地址给它调用,还不得 websocket

    你的问题,就是 google 这个网站可以解决的
    watzds
        4
    watzds  
       2018-06-19 05:57:08 +08:00 via Android
    还有就是找论文看吧,哈哈,把背景,发展,都介绍清楚了
    Durandal01
        5
    Durandal01  
       2018-06-19 08:12:59 +08:00
    只要能提出正确的问题, 大部分情况 Google 都可以帮你解决啦.

    btw: webhooks 应该是服务端 -> 服务端的通知吧....和 ws 解决的不是同一类问题.
    jyf
        6
    jyf  
       2018-06-19 09:45:43 +08:00
    有 这个网站存在我的脑海里 也在 todo-plan 里 等我做出来再来通知你 :D
    Chyroc
        7
    Chyroc  
       2018-06-19 10:23:10 +08:00   ❤️ 1
    举几个例子说明

    Webhooks:你往 github push 了一个 commit,如果你设置了 webhook,那么 github 会往你设置的地址( github 里面显示的是 Payload URL ) post 一段数据,这个过程是 **实时的** ,然后你可以基于这个数据做自己的事情(比如自动编译发布)

    websocket:一般是浏览器和服务端有实时的数据传输需要,并且有时候需要服务器主动传输,像熊猫 tv 就是每个房间搞了一个 websocket,估计传的是弹幕

    long polling:网页微信就是这个,用一个大概 30s 的 http 连接连到服务器上,如果没有新消息就一直 hang 住,有新消息的时候,服务器就断开(配合返回信息),然后客户端知道有新消息,用另一个接口获取新消息;然后循环上面的过程。
    pigzilla
        8
    pigzilla  
       2018-06-19 14:32:09 +08:00
    Stack Overflow,Quora,知乎了解一下。
    sd
        9
    sd  
    OP
       2018-06-19 14:37:58 +08:00   ❤️ 1
    @watzds @Durandal01 我现在觉得答案可能还是 google+survey,survey 的时间是省不了。
    现在的做法是。已授权举例。
    1、之前接过微信网页了解到有 OAuth 2.0 这个东西。只是知道,会用,但是不知道微信是怎么实现。
    2、然后从 OAuth 2.0 官方网站提供的资料中筛选。这部分主要看的 RFC 文档、社区里面的资料、github 上的代码这些。去了解怎么实现。
    3、提供授权服务公司的 develop 文档。好比谷歌的 api 文档、okta 的文档。

    在第二步的时候,会带到一些新的名词:Self-Encoded tokens、JWT、JWS、OpenID Connect、authorization vs authentication。如果有兴趣可以展开。
    takato
        10
    takato  
       2018-06-19 14:49:40 +08:00
    其实就是把知识图进行展开吧。。。
    但是单纯追求这张 List 似乎意义并不是很大,因为知识的意义就在于这些知识点的连接本身。

    另外,最关键的问题是,如果有人需要这张 List,可以为这张 List 付出些什么。。没错,咨询公司就是干这个的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:11 · PVG 07:11 · LAX 15:11 · JFK 18:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.