0
我想使用在glassfish上運行的websocket使井字遊戲腳趾。我已經下載了this example表單git。首先,我想測試它,所以我將它作爲我的機器上正常的java進程運行。我還做了一個微小的變化給tictacto.js與websockets連接的井字腳趾
if (typeof MozWebSocket != "undefined") { // (window.MozWebSocket)
appType = "Mozilla";
} else if (window.WebSocket) {
appType = "Chrome";
} else {
alert('ERROR: This browser does not support WebSockets');
}
然後
if (appType == "Mozilla") {
ws = new MozWebSocket(WEBSOCKET_URL);
//alert('MozWebSocket');
} else {
ws = new WebSocket(WEBSOCKET_URL);
//alert('WebSocket');
}
當我打開與FF 10.0的測試頁的事件OnClose中才會調用和我的狀態「網頁套接字連接已關閉。「然後我用Chrome 17.0.963.46米打開測試頁面。狀態也是「The WebSocket ....」,但服務器引發異常。
run:
TicTacToe Server: Listening on port 9000
java.io.IOException: An established connection was aborted by the software in your host machine
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
at sun.nio.ch.IOUtil.read(IOUtil.java:186)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:323)
at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
是什麼原因?我雖然關於幾個possilbe問題:
- 我使用Netty 3.2.6.Final從JBoss存儲庫。它可以使用不同的瀏覽器標準。
- 運行它作爲我的機器上的java進程istead作爲web服務器。但Netty沒有任何需要它的依賴。
- 錯誤的位置。 var WEBSOCKET_URL =「ws:// localhost:9000/websocket」;和HTML位置爲C:...網頁\科洛的\ src \主\ web應用程序\ t.html
我使用NetBeans 7.1和GlassFish 3.1
固定的項目可以發現https://github.com/lukasz-madon/Tic-Tac-Toe-with-WebSocket
是的,問題是版本錯誤。 – 2012-02-11 21:43:42
請記住使用WebSocketX包(而不是爲了向後兼容而留下的WebSocket包)。 – Veebs 2012-02-12 03:51:46
是的,我已經做了這個改變,謝謝。 – 2012-02-12 17:21:09