小编jos*_*ler的帖子

将游戏部署到服务器会导致奇怪的行为

我和朋友一起使用HTML5 WebSockets和java作为后端开发了类似于游戏的游戏,并且最近将我的游戏部署在运行在20 $ Digitalocean Droplet(3GB ram,2cpu)上的Glassfish服务器上.

在开发游戏时,我使用IntelliJ和Netbeans的同事,在我们的PC上运行的Glassfish服务器上部署WAR文件时,一切都按预期工作.但是当在液滴上部署完全相同的WAR文件时,球的移动速度似乎快了3倍.

我尝试通过在虚拟机上安装与Droplet相同的Ubuntu服务器并执行我用于安装OpenJDK,Glassfish的相同步骤来重现该问题,但是在VM上它也运行良好.

其他具有1个CPU(试过ubuntu和centos)的液滴会产生同样的问题.我想知道这个问题的原因可能是我错过了什么?

下面是我用于连接/游戏的代码:

WebSocket的:

@ServerEndpoint("/singleplayer")
public class SingleplayerSocket {

    private static final Set<Session> PLAYERS = Collections.synchronizedSet(new HashSet<Session>());

    private Session session;
    private Gson gson;
    private Game game;

    private void sendMessage(String message) {
        try {
            for (Session player: PLAYERS) {
                if (player == session) {
                    player.getBasicRemote().sendText(message);
                }
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    private void gameStart() {
        game.start();
        sendMessage("Game started");
    }

    @OnOpen
    public void onOpen(Session session) {
        this.session = session;
        gson = …
Run Code Online (Sandbox Code Playgroud)

java glassfish java-ee websocket java-websocket

6
推荐指数
1
解决办法
181
查看次数

标签 统计

glassfish ×1

java ×1

java-ee ×1

java-websocket ×1

websocket ×1