为什么WebSocket实现被分为子接口这是一个好主意?

时间:2012-03-13 16:17:41

标签: jetty websocket

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

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

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

1 个答案:

答案 0 :(得分:5)

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

标准WebSocket接口只有方法

onOpen(Connection con)

onClose(int closeCode, String message)

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

所以标准的 WebSocket接口基本上只是用于打开连接和向浏览器发送消息

您无需处理其他功能,例如邮件从浏览器到达时。

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

现在,如果您希望WebSocket处理文本消息和二进制消息,您必须像这样实现它:

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

您始终只需要实现任务所需的接口,而不是所有其他功能(如果它们与您无关)。这简化了代码并减少了代码长度。