websockets api中.sendText()和System.out.println之间有什么区别

时间:2014-01-08 18:10:49

标签: java html5 websocket

我是java HTML5 websockets api的初学者。

我遇到以下情况,任何人都可以告诉我有什么不同之处

session.getBasicRemote().sendText("Hello");

System.out.println(hello);

代码是:

@OnOpen
public void onOpen(Session session) {
    System.out.println("Connected to endpoint: " + session.getBasicRemote());
    try {
        session.getBasicRemote().sendText("Hello");
    } catch (IOException ex) {
    }
}

@OnMessage
public void onMessage(String message) {
    System.out.println(message);
}

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

System.out.println("hello");仅向控制台写入字符串,例如,如果您在Windows环境中运行此字符串,则会导致控制台窗口弹出“Hello”一词。这通常用于调试目的。

sendText用于向客户端发送字符串,即连接到应用程序的人员,如远程计算机或Web浏览器。

sendText是您应该使用的。 System.out.println对浏览器毫无价值。使用System.out.println打印的任何内容都不会离开您的服务器,也不会被浏览器接收。

答案 1 :(得分:1)

sendText()应该将提供的文本通过websocket推送到侦听该套接字的浏览器。 System.out.println()只是将数据打印到服务器的标准输出(数据不会被推送到监听器)。

答案 2 :(得分:1)

System.out.println(...)仅打印到本地控制台上下文。如果没有本地控制台,您将看不到输出。

session.getBasicRemote()sendText(...)。打印到远程连接。

它们都执行文本打印,但是执行两个完全不同的目标。