我和朋友一起使用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) 如何比较两个 selenium WebElements 以查看它们是否相同?
首先我检索一个列表input_fields和first_input元素:
self.input_fields = driver.find_elements(By.CLASS_NAME, class_name)
self.first_input = driver.find_element(By.ID, id)
然后我尝试检查input_fields[0]和first_input是否是同一个 WebElement。
if self.first_input is not self.input_fields[0]:
self.__log.warning("WebElement first_input : {} != {}".format(self.first_input, self.input_fields[0]))
Run Code Online (Sandbox Code Playgroud)
尽管session和element相同,但无论如何都会触发警告消息。
WARNING - WebElement first_input: <selenium.webdriver.remote.webelement.WebElement (session="796bf0bcf3e0df528ee932d477951689", element="94a2ee62-9511-45e5-8aa3-bd3d3e9be309")> != <selenium.webdriver.remote.webelement.WebElement (session="796bf0bcf3e0df528ee932d477951689", element="94a2ee62-9511-45e5-8aa3-bd3d3e9be309")>
Run Code Online (Sandbox Code Playgroud)