websocket握手:开发者需要为此做些什么?

websocket握手:开发者需要为此做些什么?,websocket,handshake,Websocket,Handshake,我已经成功地完成了websocket测试,但我想了解websocket握手。在我的web客户端中,我使用以下代码启动websocket通信 var ws = new WebSocket("ws://example.com/foobar"); ws.onmessage = function(evt) { /* some code */ } ws.send("Hello World") 在我的web服务器(使用Java)中,我使用了Jetty lib并实现了如下服务器: public class

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

var ws = new WebSocket("ws://example.com/foobar");
ws.onmessage = function(evt) { /* some code */ }
ws.send("Hello World")
在我的web服务器(使用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套接字通信对我来说很好,我没有做过任何握手的事情。它是如何工作的?

如果你使用像Jetty这样的库,那么像握手这样重复的事情都是在幕后进行的,这样你就不必去注意了。这就是使用库的想法——您可以编写直接的代码,而无需重新发明轮子

如果您确实想自己实现握手,那么您可能想在没有库的情况下四处闲逛,并“勉强”地研究如何实现握手

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