Tic Tac Toe с подключением веб-сокеты - PullRequest
0 голосов
/ 10 февраля 2012

Я пытаюсь сделать крестики-нолики, используя веб-сокеты, работающие на стеклянной рыбе. Я скачал этот пример форма Git. Во-первых, я хочу проверить это, поэтому я запускаю его как обычный процесс Java на моей машине. Я также внес небольшое изменение в tictacto.js

  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 вызывается только, и я получаю статус «Соединение WebSocket было закрыто». затем я открываю тестовую страницу с Chrome 17.0.963.46 m. Статус также "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)

В чем причина? Я думаю о нескольких возможных проблемах:

  • Я использую Netty 3.2.6.Final из репозитория JBoss. Он может использовать другой стандарт веб-сокетов, чем браузеры.
  • запускать его как Java-процесс на моем компьютере вместо веб-сервера. Но у Netty нет зависимостей, которые бы этого требовали.
  • Неправильные локации. var WEBSOCKET_URL = "ws: // localhost: 9000 / websocket"; и расположение html: C: ... web \ kolo \ src \ main \ webapp \ t.html

Я использую Netbeans 7.1 и Glassfish 3.1

Исправлен проект можно найти https://github.com/lukasz-madon/Tic-Tac-Toe-with-WebSocket

1 Ответ

1 голос
/ 11 февраля 2012

Я мог бы быть версией веб-сокета. Вот таблица версий веб-сокетов и какой браузер поддерживает какие.

Из памяти 3.2.6 поддерживается только HyBi-00.

Попробуйте Нетти 3,3 . Он поддерживает несколько версий.

...