【发布时间】:2013-09-19 22:11:56
【问题描述】:
我有一个问题应该走哪条路。
我想通过网络浏览器开发实时在线游戏。
我想使用 C++ 编写游戏服务器并监听 TCP 套接字。客户端游戏将用 javascript 编写。我不知道如何使用 TCP 套接字与 c++ 服务器通信 javascript 的唯一问题。我考虑过使用 Socket.IO,但据我所知,这个库没有选项只能连接到真正的 TCP 服务器、推送字节并读取传入的字节。相反,我需要使用一些我想避免的包装器,比如 Node.JS 服务器。
谁能指导我应该走哪条路?
【问题讨论】:
-
如果你想提高性能,并且能够优化,你将不得不使用 socket.io 和 C++ 绑定到 node.js;不过不要太担心,在 node 中创建 c++ 绑定相当简单,您无需担心性能(V8 支持您)。
-
您不能从 Web 浏览器执行 TCP。你只能做websockets。而且您必须在您的 c++ 服务器中实现 websockets,这非常困难。从技术上讲,您可以实现一个 chrome 应用程序,但您不能只将网络浏览器指向一个 url 来玩游戏。
-
我建议只支持支持 WebSocket 的浏览器(后备方法很可能无法满足实时游戏的要求)并使用现有的独立 WebSocketServer c++ 实现作为基础(我会使用基于事件而不是基于线程的实现)。
-
非常感谢您的所有建议!我想我会尝试使用 NODE.JS 生成 C++ 游戏服务器作为库,并在读取传入数据时将所有数据推送到它。我更喜欢 Socket.IO 的想法,因为它能够使用闪存套接字以及 websockets 和 AFAIK,它们都能够处理每秒 30 次数据交换的游戏节奏。谢谢你:)
-
你好@Irav 解决这个问题的最后步骤是什么。我也陷入了类似的境地
标签: javascript c++ sockets socket.io