【问题标题】:Websockets - Server-side requirements (Windows server, not Apache)Websockets - 服务器端要求(Windows 服务器,不是 Apache)
【发布时间】:2014-04-05 18:27:45
【问题描述】:

我试图了解 websocket 是如何工作的,但我找不到任何像样的教程。 如何在 Windows 服务器上使用 websocket?它是否需要任何扩展和一些 PHP 代码?是插座吗?还是某种彗星新技术?

如果我正在处理,例如www.websocket.com/game/1.htm,并且我想在此页面上建立一个 websocket 连接,我应该使用什么 url?

谢谢

【问题讨论】:

  • “你问一个模糊的问题,你会得到一个模糊的答案”请阅读全文stackoverflow.com/questions/how-to-ask
  • Roy,我看到你说“我认为它是 AJAX 的新版本。它可能是:websockets 是未来。微软创建了 SignalR,在开发网站时使用 websockets 的框架. 看看:asp.net/signalr

标签: javascript php html websocket server-side


【解决方案1】:

阅读:http://chimera.labs.oreilly.com/books/1230000000545/ch17.html

在 MS 生态系统中,有多种使用 WebSockets 的选项:

【讨论】:

  • 首先,谢谢!所以它是一个插座。令人失望。所以它确实需要扩展和服务器端代码?
  • 您期待什么?我很好奇:D
  • 已经有一个新版本的“ajax”:html5rocks.com/en/tutorials/file/xhr2。 websocket 是一个持久的全双工二进制连接,其用例与 AJAX 不同。它更专注于“推送”架构。
  • 是的,它需要服务器端支持和处理编码。
  • 你暂时不了解我,Websocket正是我需要的,但我认为它会使用Comet技术开发,比如ajax。我想在我的服务器上设置 websocket,但是,它非常复杂,服务器端广泛,我仍然不太明白从哪里开始,什么是最好的解决方案。
【解决方案2】:

实际上对于“基于 PHP 的 websocket”并没有真正的要求。事实上,websocket 并不像你一直做的那样,只是一个简单的“连接”。当您访问您的网址时,无论如何,您都设置了这个“套接字”。现在,您必须实现的唯一目标是确保此连接不会“死亡”。
这可以通过在脚本上设置时间限制来实现,如下所示:

set_time_limit(0);

这意味着脚本在“连接”到 URL 时永远不会超时。之后,您只需按照

中的方式进行操作
new PHPWebSocket();

然后你可以用它做任何你想做的事,同时保持连接。这只是一个小故事,还有其他方法,但我建议您阅读更多关于 websockets 以及 PHP 如何“处理”它的内容。

【讨论】:

    【解决方案3】:

    好吧,如果你喜欢在 Windows 中使用 WebSockets,最好的选择是: SignalR

    它使开发变得非常简单,它也适用于尚不支持 websockets 的浏览器,使用普通的 AJAX 长轮询,或 Forever Frame 等。

    举个例子,学习一点,你就能制作出令人难以置信的实时网站。

    太神奇了,websockets 是未来!

    【讨论】:

    • 我同意 websockets 是未来(或者全双工通信是未来)。尽管我认为 signalr 是一个不错的选择,但它只是 websocket 协议之上的抽象。您依赖操作系统版本来获取带有信号器的 websockets,并且需要在服务器上使用 win8+,并且您也没有在所有客户端上获取 websockets。但我很高兴看到 MS 正在构建类似 signalr 的东西,尽管它不是我在 .NET 堆栈上的选择(还)
    • 我同意你关于服务器要求的观点,但是关于“你没有在所有客户端上获得 websockets”,这就是 websockets 目前的现实。并非所有浏览器都支持它们,因此您需要使用其他技术来补偿那些不支持的浏览器。而 SignalR 做到这一点很顺利,它真的很容易使用、理解、开发等。如果你已经有一个 AJAX ASP.NET 应用程序,那么迁移到 SignalR 太容易了。
    • 嗯,我考虑的更多是其他客户端而不是浏览器。如.NET 2.0、3.5、4.0等以及iOS、Android等设备。其他框架在那里有 websocket 支持,但由于 signalr 依赖 websocket 作为操作系统功能,所以感觉不好。但是,我对此非常挑剔。信号器的平均需求可能会很好!这是一个很好的框架!
    • 更不用说跨协议连接事物的能力(对我来说非常重要)。这样我就可以连接诸如 netduino 或原始套接字、powershell、nodejs 之类的东西,并且仍然可以通过同一平台进行通信(并且始终使用全双工套接字)。正如我所说的......我对此非常暴躁;)
    猜你喜欢
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 2016-07-30
    相关资源
    最近更新 更多