Tomcat Web Socket在localhost上运行,但在带有404的远程服务器上失败

时间:2019-01-17 20:30:30

标签: java tomcat websocket java-websocket

我当时在客户端上使用JavaScript并在服务器上使用Java / Tomcat来实现Web套接字。它在localhost上可以很好地工作,但是当我在远程主机上部署它失败。检查控制台,我在Web套接字请求上收到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);
        }
    }
}

从浏览器控制台中,当我在本地主机上加载执行Web套接字客户端的页面时,会得到以下信息:

console of localhost

但是当我加载远程服务器上托管的同一页面时,我得到了:

console of remote server

本地主机上的Tomcat 8.0.28, 我的远程服务器上的Tomcat 8.0.12。

请问可能是什么问题?

0 个答案:

没有答案