【问题标题】:websocket handshake: developer need to do anything for this?websocket 握手:开发人员需要为此做些什么?
【发布时间】:2011-10-19 06:12:23
【问题描述】:

我已经成功完成了我的 websocket 测试,但我想了解 Websocket 握手。在我的网络客户端中,我使用下面的代码来启动 websocket 通信

var ws = new WebSocket("ws://example.com/foobar");
ws.onmessage = function(evt) { /* some code */ }
ws.send("Hello World")

在我的网络服务器(使用 Java)中,我使用了 Jetty lib 并实现了如下服务器:

public class MyWebSocket implements WebSocket.OnTextMessage {
    public void onOpen(Connection connection)
    {
    }

    public void onMessage(byte frame, byte[] data,int offset, int length)
    {
    }

    public void onMessage(String data)
    {
    }

    public void onClose(int code, String message)
    {

    }
}

Web 套接字通信对我来说工作正常,我没有为握手做任何事情。它是如何工作的?

【问题讨论】:

    标签: websocket handshake


    【解决方案1】:

    如果您使用像 Jetty 这样的库,那么重复性的事情(如握手)会在幕后完成,因此您无需处理这些事情。这就是使用库的想法——您可以编写直接的代码,而无需重新发明轮子。

    如果您确实想自己实现握手,您可能想在没有库的情况下摆弄一下,并尝试如何“勉强”实现它。

    对于Jetty,可以查看握手码here,密钥解析完成here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-03
      • 2019-05-27
      • 2018-02-23
      • 2012-09-24
      • 1970-01-01
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多