2012-02-10 20 views
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

回答

1

我可能是網絡套接字版本。這是一個網絡套接字版本的table,哪個瀏覽器支持哪一個。

從內存來看,3.2.6只支持HyBi-00。

嘗試Netty 3.3。它支持許多版本。

+0

是的,問題是版本錯誤。 – 2012-02-11 21:43:42

+0

請記住使用WebSocketX包(而不是爲了向後兼容而留下的WebSocket包)。 – Veebs 2012-02-12 03:51:46

+0

是的,我已經做了這個改變,謝謝。 – 2012-02-12 17:21:09