【问题标题】:jetty WebSocket custom eventsjetty WebSocket 自定义事件
【发布时间】:2012-08-01 14:51:59
【问题描述】:

在使用 node.js 和 socket.io 来创建 WebSocket 服务器之前,我是使用 jetty 的 WebSockets 新手。但由于不同的要求,我将不得不使用 java WebSocketServlet/WebSocket 并且到目前为止使用 maven、jetty 和 jetty-websocket 插件做得很好。我的问题是,我没有找到任何与 java 解决方案的 socket.io 的 socket.on(event, fn) 实现相媲美的东西。我希望有同样的可能性对从客户端触发的不同事件做出反应,例如“new”、“addthis”、“jointhat”,......将一些数据作为 json 或作为正文中的 POST 参数发送。是否有任何可能或 WebSocket 实现可以与 socket.io 做同样的事情? 做这个“通道”的东西,我可以在服务器端实现事件处理?

【问题讨论】:

    标签: java servlets websocket jetty maven-jetty-plugin


    【解决方案1】:

    Jetty 的 websocket 实现只关心处理 websocket 的基础。

    • 二进制消息(带分段)
    • 短信(带有碎片)
    • 乒乓球
    • 关闭

    关于支持各种新的 websocket 子协议(奇怪的名称),例如WAMP(websocket 应用程序消息传递协议),有一些简短的讨论。但这些只是建立在基本的 websocket 层之上。

    另一种选择是使用具有完整通道 api 的东西,例如 CometD,并将其配置为使用 websocket,而不是回退到旧的通信格式。

    【讨论】:

      【解决方案2】:

      WebSocket 规范中没有自定义事件,socket.io 只是遵循自己的协议支持自定义事件 - https://github.com/LearnBoost/socket.io-spec

      据我所知,目前还没有支持自定义事件监听的 Java 实现。

      但是,通过 Atmosphere,您可以将 socket.io 客户端与 Java Web 服务器一起使用,但我还没有测试过。 https://github.com/Atmosphere/atmosphere/wiki/Getting-Started-with-Socket.IO

      如果您想直接控制 Jetty 的 WebSocketServlet,您可能想在客户端使用其他库,例如 jQuery Socket。 - https://github.com/flowersinthesand/jquery-socket/tree/master/samples/jetty-ws

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-26
        • 2011-06-26
        • 2017-12-06
        • 1970-01-01
        • 2015-04-23
        • 2019-12-05
        相关资源
        最近更新 更多