首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js网络服务器和C++游戏服务器

node.js网络服务器和C++游戏服务器
EN

Stack Overflow用户
提问于 2013-08-19 02:40:08
回答 2查看 3.3K关注 0票数 4

这个问题可能太宽泛了,但我认为这是一个很好的问题,我不知道如何处理。

我目前在example.com主持一个网站。目前,我正在使用100%的node.js来完成这个任务。我还主持了一个网络HTML5游戏(在game.example.com),它使用socket.io,这太棒了,但我决定使用C++ (或者可能是Java)来处理游戏服务器,并计划从JavaScript中转换服务器逻辑。

我目前最大的问题是,我根本不知道如何连接WebSocket。我仍然计划使用JavaScript为完整的客户端(HTML和node.js )服务,但我希望客户机能够连接到C++服务器,而不是node.js服务器。

我目前连接到服务器的方式只是使用从Socket.IO的io.connect();获得的套接字。我认为这是可以保留的,我只需要将服务器端的套接字从node.js传递到我的C++程序,我完全不知道如何做到这一点。

有谁可以帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-19 09:52:14

假设我正确地理解了您,您希望Node处理常规的HTTP请求,但希望将Websocket请求传递给您的C++服务器?尝试在Node中为升级请求使用代理:

代码语言:javascript
复制
var http = require('http'),
    httpProxy = require('http-proxy');

//have your c++ server for websockets operating on port 1333
var proxy = new httpProxy.HttpProxy({
  target: {
    host: 'localhost',
    port: 1333
  }
});

var server = http.createServer(function (req, res) {
    //handle normal requests in here
});

server.on('upgrade', function (req, socket, head) {
  // Proxy websocket requests...
  proxy.proxyWebSocketRequest(req, socket, head);
});

server.listen(80);
票数 5
EN

Stack Overflow用户

发布于 2013-08-19 06:42:36

首先,可以选择将客户端直接连接到C++服务器。例如,如果您的socket.io传输是websockets,则可以使用http://libwebsockets.org (服务器端的C++ websockets库)。

否则,您可以让客户端将socket.io连接到node.js服务器,并在C++服务器和node.js服务器之间建立一些简单的通信。不要试图“将socket.io关闭到C++服务器”:只需让C++服务器和node.js服务器之间进行通信,来回传递关于玩家状态的消息: C++将处理逻辑,node.js将执行实际的发送和接收。例如,您可以使用一个简单的TCP套接字来实现这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18305692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档