Articles of websocket

每个连接的Websocket服务器线程

我正在创建一个html5多人游戏,并且正在研究如何创建一个websocket服务器。 我一直在寻找各种图书馆,我注意到,每个人都会为每个连接的客户端创建一个新的线程。 现在我对websocket还是比较陌生的,但是我知道在过去,当谈到游戏服务器devise时,每个连接的线程是不好的做法。 这对websockets是否正确? 为什么每个连接都需要一个新线程?

服务器上的可变时间步骤循环问题

我开发了一个类似的游戏,它使用HTML5 websockets和java作为后台,最近我在游戏上运行在Digitalocean雾滴上的Glassfish服务器上。 我一直在多台机器上本地testing我的游戏,从来没有遇到任何问题,但是当我在服务器上部署我的游戏并尝试玩游戏时,球似乎比普通速度快得多。 我不知道我在这里失踪,因为在本地托管服务器时,thread.sleep工作正常。 可变时间循环: @Override public void run() { long lastLoopTime = System.nanoTime(); long lastFpsTime = 0; while (gameRunning) { long currentTime = System.nanoTime(); long updateLength = currentTime – lastLoopTime; lastLoopTime = currentTime; double delta = updateLength / ((double) OPTIMAL_TIME); lastFpsTime += updateLength; if (lastFpsTime >= 1000000000) { lastFpsTime = 0; } if (!gamePaused) […]

如何处理多个房间的服务器更新? (的NodeJS)

我正在使用socketio + nodejs进行多人游戏。 目前我在我的服务器上使用setInterval,在我的客户端渲染上使用requestAnimation。 现在我想为每个房间创建多个游戏实例,所以我问如何有效地做到这一点: 我是否为每个创建的游戏初始化一个新的setInterval,并在游戏结束时调用clearInterval? 要么… 我应该只创建setInterval的一个实例,并循环通过每个活动的游戏,并更新它们? 我应该使用setInterval吗? 编辑:澄清,我目前的单setInterval只是在约15hz做到这一点: 根据input更新每个玩家的位置 – 通知所有新职位的客户 一旦客户端发送它们,就会收到input,由socketio处理。 发送这么多的发射是故意的,因为我的服务器是权威的,我的游戏很慢(想象一下蛇的克隆)。 我打算允许尽可能多的游戏,因为有房间,这是不确定的(或多达一个服务器可以处理)

关于构建一个实时多人networking平台+框架和/或takeit的提示

我试图开发一个多玩家游戏的networking应用程序,基本上应该能够实现以下目标: 提供游戏引擎+框架/工具箱让第三方公司整合自己开发的游戏。 游戏必须运行实时和多人游戏。 所以这个想法是开发一些框架或工具包,以轻松实现上述目标。 只要我不想重新发明轮子,我需要validation每个客户的行动,而在下面的房屋,我想知道你的意见: Web应用程序将使用PHP语言开发。 客户端连接将通过socket.io.js进行管理 服务器validation将在Node.js上运行 为了让第三方开发他们的定制游戏,我需要采用一个可以运行在顶端的游戏引擎,哪一个? 因为我不是专家,所以根据你的经验,我正在寻找一些建议或反馈,并让我知道我是否正确的方向。

基于networking的游戏基于networking聊天的结构示例

什么是最好的工具来创建一个基于Web的聊天/消息系统? 为客户端我们有:浏览​​器(任何JS解决scheme – 最好不使用像Flash中的jsocket) 对于服务器,我们有:PHP / Python /(node.js不能确定这个)可扩展的MySQL结构可扩展的MongoDB集群可扩展的redis服务器memcache服务器(每个128GB ram)一堆服务器与路由器(socket基础负载平衡器stage- 4)零-MQ和/或rabbitMQ 我们将有公会聊天,区域聊天(在Xkm内)/领土聊天/ PM 我们有超过一百万的玩家,两万个同时在线的玩家将会分组聊天 根据地理位置,每个小组将有大约100-2k的玩家 客户端将拥有移动应用程序(android和iphone),如果他们select(并推送PM的通知) 我的问题是什么将使用客户端服务器技术的最佳组合? 谢谢

WebSockets和Python / PyGame

我正在寻找开发一个游戏,将服务器写在Python / PyGame和前端在HTML5。 我想要做的是尽可能减less影响,打开一个或两个WebSocket,以允许服务器将事件推送到我的浏览器。 这是可能的Socket.IO,还是我需要一个额外的层来处理WebSockets? 我想避免导入和安装额外的软件包,如果可能的话。

开发一个通用多人API

我的任务是在JavaScript中开发一个通用多人API,并带有一个Node.js后端。 API的目标是为JavaScript手机游戏开发者提供服务,以便他们可以使用简单易用的API和现有的后端开发多人游戏。 该项目还包括开发实现,Node.js服务器和testing游戏,否则我无法testing它的课程。 所以把它称为整个图书馆的发展是更准确的。 我遇到的问题是试图找出如何提供一个很好的游戏同步机制。 图书馆可以提供房间和连接管理,朋友列表,注册和soforth,因为这些东西在每个游戏中都使用相同的机制。 然而,游戏同步逻辑可以是非常特定于游戏的,并且在通用库和服务器中是绝对不允许的。 我正在使用以下库/框架进行开发: Node.js作为游戏服务器。 客户端和服务器端的Socket.io用于websocket通信。 Require.js客户端启用模块化开发。 Redis作为持久存储的数据库。 为了澄清图书馆的目标: 支持各种各样的游戏,从基于回合的100个可同步对象的策略游戏到多人自上而下的射击游戏,延迟是最重要的。 没有客户必须扮演某种“服务器”的角色。 最小化手动设置客户端。 精确同步,无需同步整个游戏状态。 服务器 – 客户端体系结构没有包含游戏特定代码的服务器。 不应该对开发者构成限制,也不应该要求某些编码实践。 提供一个易于使用的抽象来使用通用同步机制。 整个游戏范围必须由相同的通用服务器逻辑来支持。 在API或服务器上滞后补偿必须是自动的,但不是游戏特定的。 所以对于主要问题:这是可能的还是应该提供一种方法来轻松地投射,多播和广播消息,并将实际的同步机制留给开发人员? 你将如何去呢?

服务器从另一个客户端向客户端请求数据是不好的做法吗?

我正在制作一个协作式白板应用程序,以便在某人正在绘制并使用矩形的情况下,例如,矩形数据包以x, y, width, height, color等参数发送到服务器,然后将数据包发送给其他人在房间里,在他们的屏幕上绘制一个矩形。 到目前为止,所有的命令都可以正常工作,并且每个客户端上还有一个栈,用于无限撤消和重做。 但是,那里的服务器不包含这个堆栈,因为它只需将命令转发给房间中的客户端。 到目前为止,一切正常,每个人都可以看到其他人实时绘图,但我想实现一个function,如果某人迟到,他们可以看到当前的白板。 也就是说,整个命令堆栈都必须发送给某人。 但是,这些数据不存储在服务器上,但每个客户端都有自己的(相同的副本)。 如果有人join让服务器询问其中一个客户端(哪个?循环?)将其命令堆栈发送到服务器,并让服务器将其转发给客户端,那么这样做会不好吗? 我担心的是一次性发送的数据量(拥塞)。 你们都在想什么? 还有其他的select吗?

通过websocket性能问题stream媒体摄像头(包括代码)

我终于想通了,我怎么可以stream动我的摄像头,但我没有得到最好的performance。 在低分辨率下工作正常,但只要我把分辨率提高了,性能就会变差。 我认为Unity无法处理质量和速度的解码,从而使游戏速度变慢。 这是我的代码: Texture2D screenshot = new Texture2D(Screen.width, Screen.height, TextureFormat.ARGB32, false); screenshot.ReadPixels(new Rect(0,0,Screen.width,Screen.height),0,0); screenshot.Apply(); ws.Send(System.Convert.ToBase64String(screenshot.EncodeToJPG(quality))); 希望有一些改进。

如何使用Box2D和C ++制作asynchronous步时序(游戏循环)

我正在使用Box2D和WebSocket ++在C ++中进行游戏。 世界需要每1/60 second更新一次。 同时WebSocket服务器处理玩家。 我应该怎么做间隔? 我知道在C ++中没有setInterval函数,但我可以这样做: •使asynchronous函数 – https://stackoverflow.com/questions/33234403/using-setinterval-in-c/33234557 •使asynchronous线程 – https://codereview.stackexchange.com/questions/40915/simple-multithread-timer 或者也许有一个库? 注意:这不是我如何编写主游戏循环的重复? 因为在这里我需要asynchronous游戏循环。 在链接主题中有同步游戏循环。 为什么我不会使用while (同步循环): while (loop)之后的命令永远不会被执行,如果loop设置为true 。