websocket handshake:开发人员需要为此做些什么吗?

时间:2011-10-19 06:12:24

标签: 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 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套接字通信对我来说很好,我没有做任何握手的事情。它是如何工作的?

1 个答案:

答案 0 :(得分:0)

如果您使用像Jetty这样的库,那么在幕后就会进行诸如握手之类的重复性操作,这样您就不必再照顾它了。这就是使用库的想法 - 您可以编写直接的代码而无需重新发明轮子。

如果您确实希望自己实施握手,那么您可能想要在没有库的情况下摆弄,并且如何“勉强”实现它。

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