Я реализовывал Web Socket, используя JavaScript на клиенте и Java / Tomcat на сервере.Он работает очень хорошо на локальном хосте, но при развертывании на удаленном хосте происходит сбой.Проверяя консоль, я получаю ошибку 404 при запросе веб-сокета.Хорошо. Вот код:
JavaScript:
window.onload = init;
//var socket = new WebSocket("ws://localhost:8080/JevWebSocket/actions");
var socket = new WebSocket("ws://ctra.xyneex.com/JevWebSocket/actions");
socket.onmessage = onMessage;
function onMessage(event){
var device = JSON.parse(event.data);
if(device.action === "add"){
printDeviceElement(device);
}
...
...
}
Java:
package com.xyneex.websocket;
import com.xyneex.model.Device;
import static com.xyneex.model.Device.SESSION_HANDLER;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import org.json.JSONException;
import org.json.JSONObject;
@ServerEndpoint("/actions")
public class DeviceWebSocketServer
{
@OnOpen
public void open(Session session)
{
try
{
SESSION_HANDLER.addSession(session);
}
catch(JSONException ex)
{
Logger.getLogger(DeviceWebSocketServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
@OnClose
public void close(Session session)
{
SESSION_HANDLER.removeSession(session);
}
@OnError
public void onError(Throwable error)
{
Logger.getLogger(DeviceWebSocketServer.class.getName()).log(Level.SEVERE, null, error);
}
@OnMessage
public void handleMessage(String message, Session session)
{
try
{
JSONObject jsonMessage = new JSONObject(message);
...
...
}
catch(JSONException ex)
{
Logger.getLogger(DeviceWebSocketServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Из консоли браузера, когдаЯ загружаю страницу, которая выполняет клиент веб-сокета на локальном хосте, я получаю это:
Но когда я загружаю ту же страницу, размещенную на моем удаленном сервере,Я получаю это:
Tomcat 8.0.28 на локальном хосте, Tomcat 8.0.12 на моем удаленном сервере.
Пожалуйста, что можнобыть проблемой?