Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > WebSocket ошибка соединения


Автор: ziga 29.9.2014, 16:03
Решил по примеру видео урока http://www.youtube.com/watch?v=BikL52HYaZg&list=PLSM8fkP9ppPo6cKmykJuVtTJzzHxDqHaJ&index=2 сделать чат но столкнулся с проблемой, соединения. Error during WebSocket handshake: Unexpected response code: 404. Помогите если кто сталкивался с подобным? Сразу скажу что чувак на видео делает всё на глассфиш а я на томкате 7.

вот исходники если кому лень смотреть урок:

Код

package webSocketTest;

import java.io.IOException;
import java.io.StringWriter;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonWriter;

@ServerEndpoint(value = "/chatroom")
public class ChatroomServerEndpoint {

    static Set<Session> chatroomUsers = Collections.synchronizedSet(new HashSet<Session>());

    @OnOpen
    public void handleOpen(Session userSession) {
    chatroomUsers.add(userSession);
    }

    @OnClose
    public void handleClose(Session userSession) {
    chatroomUsers.remove(userSession);
    }

    @OnMessage
    public void handleMessage(String message, Session userSession) throws IOException {

    String userName = (String) userSession.getUserProperties().get("username");

    if (userName == null) {
        userSession.getUserProperties().put("username", message);
        userSession.getBasicRemote().sendText(buildJsonDate("System", "yua are now connected as " + message));
    } else {
        Iterator<Session> iterator = chatroomUsers.iterator();
        while (iterator.hasNext())
        iterator.next().getBasicRemote().sendText(buildJsonDate(userName, message));

    }

    }

    private String buildJsonDate(String username, String message) {

    JsonObject jsonObject = Json.createObjectBuilder().add("message", username + ": " + message).build();

    StringWriter stringWriter = new StringWriter();

    try (JsonWriter jsonWriter = Json.createWriter(stringWriter)) {
        jsonWriter.write(jsonObject);
    }

    return stringWriter.toString();
    }
}



Код

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf8">
        <title>Insert title here</title>
        <script type="text/javascript">
            var websocket = new WebSocket('ws://192.168.1.124:8080/webSocketTest/chatroom');
            
            websocket.onmessage = function processMessage(message) {
                var jsonData = JSON.parse(message.data);
                if (jsonData.message != null) 
                    messagesTextArea.value += jsonData.message + "\n";
            }
            
            function sendMessage() {
                websocket.send(messageText.value);
                messageText.value = "";
            }
            
        </script>
    </head>
    <body>
        <textarea id="messagesTextArea" readonly="readonly" rows="10" cols="45"></textarea><br/>
        <input type="text" id="messageText" size="50" />
        <input type="button" value="Send" onclick="sendMessage();" />
    </body>
</html>

Автор: LSD 3.10.2014, 11:19
404 возвращает Томкат и ошибка говорит о том, что у тебя что-то не замаппилось или замаппилось не туда или не на тот URL стучишься.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)