为什么将WebSocket实现划分为子接口是个好主意



在新的Jetty版本中,WebSocket实现被划分为几个子接口:

http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/websocket/WebSocket.html

为什么这样做是个好主意
这种分离的好用例是什么?

好的,现在我已经阅读了更多关于这个问题的内容并实现了一些东西,我将尝试自己回答它。

标准WebSocket接口只有方法

onOpen(Connection con)

onClose(int closeCode, String message)

使用打开WebSocket时获得的Connection,您可以向浏览器发送消息(二进制或文本)。

因此,标准的WebSocket接口基本上只是用于打开连接并向浏览器发送消息

您不必处理其他功能,例如,当消息从浏览器到达时。

如果您想要附加功能,WebSocket还有其他子接口:WebSocket.OnFrame、OnBinaryMessage、OnTextMessage、OnControl

所以现在,如果你想让你的WebSocket处理文本消息和二进制消息,你必须这样实现:

class MyWebSocket implements  WebSocket.OnTextMessage, WebSocket.OnBinaryMessage{
    // Implementation
}

您总是只需要实现任务所需的接口,而不需要实现与您无关的所有其他功能。这简化了代码并缩短了代码长度。

最新更新