1. 程式人生 > >javaEE7中websocket的一個小問題

javaEE7中websocket的一個小問題

以下程式碼看似沒有什麼問題!

package websocket;

import java.io.IOException;

import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;

/**
 * @author linqunxun
 * @created 2015年10月13日 上午11:43:22
 */
@ServerEndpoint("/websocket")
public class WebSocketTest {

	public WebSocketTest() {
		System.out.println("init websocket");
	}

	@OnOpen
	public void onOpen() {
		System.out.println("Client connected!");
	}

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

	@OnClose
	public void onClose() {
		System.out.println("Connection colsed!");
	}

	@OnError
	public void onError() {
		System.out.println("Server has error!");
	}
}
但實際執行會在建立連線時服務端直接執行onClose,原因在onError的引數問題,改為以下程式碼即可:
@OnError
public void onError(Throwable thr) {
	System.out.println("Server has error!");
}