Решил по примеру видео урока 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>
|
|