SockJS是一个客户端JavaScript库和协议,它提供了一个简单的类似WebSocket的接口,允许您连接到SockJS服务器,而不管实际的浏览器或网络是否允许真正的WebSockets。

    它通过支持浏览器和服务器之间的各种不同传输,并根据浏览器和网络功能在运行时选择一种传输来实现这一点。

    所有这些对你来说都是透明的——你只需要看到一个类似WebSocket的界面,它就可以工作了。

    有关SockJS的更多信息,请参见[SockJS网站](https://github.com/SockJS/SockJS-client)。

    Cloudopt Next 中内置了对 SockJS 的支持,你只需要声明一个注解即可(注意路由的最后一个字符必须为/*)。

    1. @SocketJS("/socket/api/*")
    2. class SocketController : SocketJSResource {
    3. override fun handler(socket: SockJSSocket) {
    4. println(socket)
    5. socket.handler {message ->
    6. println(message)
    7. socket.write("Hello world!")
    8. }
    9. }
    10. }

    message 就是用户传递过来的消息,你可以通过 socket.write() 方法给用户发消息。如果你希望做一个聊天应用的话,建议你保存 socket 对象,每个用户在重新连接前应该是对应一个唯一的 socket 对象。