2014-04-14 209 views
0

我試圖在我的項目中創建一個簡單的Websocket連接。無法通過websocket連接連接

Java代碼:

@ServerEndpoint("/echo") 
public class EchoEndpoint { 
@OnMessage 
public void onMessage(Session session,String message){ 
    try{ 
     System.out.println(message); 
    } 
    catch(Exception e){ 
     System.out.println(e.getMessage()); 
    } 
} 

} 

HTML和JavaScript代碼:

<button type="button" onclick="WebSocketTest()">Send</button> 
<script type="text/javascript"> 
function WebSocketTest() 
{ 

alert("WebSocket is supported by your Browser!"); 
// Let us open a web socket 
var ws = new WebSocket("ws://localhost:8080/echo"); 
ws.onopen = function() 
{ 
    // Web Socket is connected, send data using send() 
    ws.send("Message to send"); 
    alert("Message is sent..."); 
}; 
ws.onmessage = function (evt) 
{ 
    var received_msg = evt.data; 
    alert("Message is received..."); 
}; 
ws.onclose = function() 
{ 
    // websocket is closed. 
    alert("Connection is closed..."); 
}; 


} 
</script> 

按我得到了錯誤WebSocket connection to 'ws://localhost:8080/echo' failed: Error during WebSocket handshake: Unexpected response code: 404

Jboss的Wildfly8作爲應用服務器的按鈕後。

任何想法?或任何工作示例?

+0

你使用支持WebSockets的Web服務器? – vtortola

+0

是的,Jboss wildfly8,@vtortola –

回答

2

這是因爲你把錯誤的道路在這裏:

變種WS =新的WebSocket( 「WS://本地主機:8080 /回聲」);

如果您的應用程序被打包到如:websocketapp.war(或者,如果設置websocketapp上下文路徑) 那麼你應該使用:

變種WS =新的WebSocket( 「WS://本地主機:8080/websocketapp /回波」);

+0

我有同樣的問題。我的應用程序在'webapps/root'文件夾下部署到碼頭,我應該放什麼來代替'websocketapp'? – Forepick

0

連接到網絡插座例如

var webSocket= new WebSocket("ws://l92.168.1.27:50333/project name//serverendpointdemo"); 

    var messagesTextArea=document.getElementsByClassId("messagesTextArea"); 
    webSocket.onopen=function(message){processOpen(message);}; 
    webSocket.onclose=function(message){processClose(message);}; 
    webSocket.onmessage=function(message){processMessage(message);}; 
    webSocket.onerror=function(message){processError(message);}; 
    function processOpen(message){ 
     messagesTextArea.value+="Server connected...."+"\n"; 
    } 
    function processMessage(message){ 
     messagesTextArea.value+="Received from server:...."+message.data+"\n"; 
    }