2014-04-25 6 views
0

websocket 용 Oracle 튜토리얼을 다시 만들려고합니다. NetBeans를 사용한다고 가정합니다. 설명서에는 다음과 같이 나와 있습니다 :websocket, java and netbeans

"EchoServer WebSocket 끝점을 배포하는 작업은 특히 간단합니다. 원본 파일을 컴파일하고 WAR 파일에 클래스 파일을 포함하고 WAR 파일을 배포해야합니다."

하지만 Netbeans이 자동으로 컴파일되고 확실히 배포 할 때가되었습니다. 내가 놓친 게 있니? 나는 서버에서 반환 메시지를 얻을 수 없기 때문에 예라고 생각합니다. 그래서 Glassfish 4.0과 함께 Java 7.51을 실행하고 있습니다. 엔드 포인트에 연결 중이지만 서버에서 리턴 메시지가 없다고 생각합니다. 어떤 도움을 주시면 감사하겠습니다.

package websock; 

import javax.websocket.server.ServerEndpoint; 
import javax.websocket.OnMessage; 


@ServerEndpoint("/echo") 

public class EchoServer { 
@OnMessage 
String echo(String incomingMessage){ 
    return "I got this (" + incomingMessage + ")" 
      + " so I am sending it back!"; 
} 

} 

그리고 HTML 등 :

Connecting to ws://localhost:8080/websock/echo 

Connected! 

message sent: why doesn't this work 

답변

0

: "이 일을하지 않는 이유를"

<script> 
     var echo_websocket; 

     var init = function(){ 
      output = document.getElementById('output'); 
      var btnSend = document.getElementById('sendMsg'); 
      btnSend.addEventListener('click', send_echo); 
     }; 

     var send_echo = function(){ 
      var wsUri = 'ws://localhost:8080/websock/echo'; 
      writeToScreen('Connecting to ' + wsUri); 
      echo_websocket = new WebSocket(wsUri); 
      echo_websocket.onopen = function(evt){ 
       writeToScreen ('Connected!'); 
       doSend(textID.value); 
      }; 

      echo_websocket.onmessage = function(evt){ 
       writeToScreen('Received message ' + evt.data); 
       echo_websocket.close(); 
      }; 

      echo_websocket.onerror = function(evt){ 
       writeToScreen('<span style="color:red;">' + evt.data + 
         '</span>'); 
       echo_websocket.close(); 
      }; 
     }; 

     var doSend = function(message){ 
      echo_websocket.send(message); 
      writeToScreen('message sent: ' + message); 

     }; 

     var writeToScreen = function(message){ 
      var pre = document.createElement('p'); 
      pre.style.wordWrap = 'break-word'; 
      pre.innerHTML = message; 
      output.appendChild(pre); 
     }; 

     window.addEventListener('load', init, false); 


    </script> 


</head> 

<body> 
    <div> 
     <input type="text" id="textID"><br> 

     <button id="sendMsg">Send Message</button> 


    </div> 

    <div id="output"></div> 
</body> 
문자열로이 실행

, 다음과 같은 출력을 얻는다 읽어 주셔서 감사합니다. 구문 오류였습니다. 나는 공공 문자열을 선언하는 것을 게을리했다. ...