【问题标题】:Adding WebSockets support to local web server将 WebSockets 支持添加到本地 Web 服务器
【发布时间】:2011-11-10 06:55:39
【问题描述】:

我正在开发一个多人 Javascript/canvas 游戏,它使用 WebSockets 来传达玩家的位置和状态等。我很喜欢用 Javascript 编写代码,但我遇到了麻烦的是服务器端 websockets 的东西。

我不知道应该如何通过客户端 Javascript 实现 WebSocket 支持。我要向 Apache 添加模块吗?我用 PHP 做吗?我是否使用类似 node.js 的东西?据我所知,node.js 已经收到了很多关于这类东西的赞誉,但除了 Web 服务器之外,我仍然不知道它到底是什么。

【问题讨论】:

  • 您可以使用 Node.js require("net").createServer 函数非常轻松地创建一个支持套接字的基本服务器。您必须实现 WebSocket 协议,我之前在stackoverflow.com/q/7045885 上发布了一些伪代码(解码客户端-> 服务器消息)。还有适用于 Node.js 的现成可用的 WebSockets 库。

标签: javascript apache node.js websocket


【解决方案1】:

我建议使用 nodejs 以及 socket.io,这是一个跨浏览器兼容的 Web 套接字样式库。它使编写与服务器(==nodejs)实时通信的代码变得非常简单。它在支持它们的浏览器中使用 Web 套接字,或在不支持它们的浏览器中使用其他技术。

只是关于 PHP 的注释,因为您提到了它...在我看来它不太适合这个,因为您可能知道,PHP 脚本只存在于请求的持续时间。这种行为很难实现实时通信,除非您使用 PHP 构建自己的服务器,完全跳过 Apache 等。

另一种选择可能是使用 Python,也许像 Twisted 这样的东西,尽管您可能需要自己实现 websockets 或类似的东西。

【讨论】:

  • 谢谢。我会毫不犹豫地研究 nodejs 和 socket.io。我提到 PHP 的原因是因为我找到了一个 PHP Web 套接字服务器,你在命令行中运行它,脚本执行一个连续的循环检查消息,处理它,然后发回响应。显然我不愿意使用它,因为这根本不是 PHP 的用途。
猜你喜欢
  • 2014-09-04
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
相关资源
最近更新 更多