HTML5 websockets vs PHP websockets vs node.js websockets?

Posted

技术标签:

【中文标题】HTML5 websockets vs PHP websockets vs node.js websockets?【英文标题】:HTML5 websockets vs PHP websockets vs node.js websockets? 【发布时间】:2015-04-10 02:44:36 【问题描述】:

我决定在我的网站聊天应用程序中使用 WebSockets,并且我刚刚开始学习 websockets,但我有三种不同的选择,node.js、phphtml5。

我想知道这三个之间有什么区别,我的意思是如果任何一个比其他更好,我不想学习所有三个。

【问题讨论】:

大家都用socket.iogithub.com/socketio/socket.io 【参考方案1】:

什么是 websocket:

WebSockets 代表了双向实时的标准 服务器和客户端之间的通信。在任何服务器和任何 客户。

WebSocket 服务器可以用任何支持 Berkeley 套接字的服务器端编程语言编写,例如 PHP 或 Node。

就像任何其他协议一样,让我们​​说像 http:你需要一个客户端和一个服务器。

如前所述,Web 套接字的服务器端实现可以使用任何一种服务器端语言完成,包括 PHP 和 Node。

对于客户端实现,您将需要在浏览器上运行的 html5 web-bsockets。

当然你不需要同时学习 PHP 和 Node 时间,但其中之一加上 html5。

我建议使用 NodeJS 来实现套接字,因为它可以让您在客户端和服务器上使用相同的技术(javascript)。 nodeJS 有 socket.io 模块,它会使用类似的 API 来处理服务器端和客户端组件。

因此您不需要为实现套接字编写太多代码。这是一个节点示例:

服务器:

var server = require("net").createServer();
var io = require("socket.io")(server);

var handleClient = function (socket) 
    // we've got a client connection
    socket.emit("tweet", user: "nodesource", text: "Hello, world!");
;

io.on("connection", handleClient);

server.listen(8080);

客户:

<script src="/socket.io/socket.io.js"></script>
<script>
    var socket = io.connect("http://localhost");
</script>


socket.on("connect", function () 
    console.log("Connected!");
);

注意:

客户端的 web-sockets 是 html5 功能,在不支持 html5 的浏览器中不可用。可以看到浏览器支持here

如果你仍然选择 PHP,你可以了解 HTML5 websockets here

【讨论】:

【参考方案2】:

Web Sockets 是一个协议,它定义了双方如何通信。它与语言无关;任何语言都可以提供一个适配器来与另一个 Web 套接字通信。您提到的三件事是此适​​配器的三种不同实现。对于聊天应用程序,您可能至少需要其中两个:一个服务器,一个客户端。选择您想用哪种语言(PHP 或 Node.js)编写服务器,并使用浏览器中的 HTML 5 Web 套接字功能与服务器通信。

【讨论】:

好的。这意味着我必须为服务器和客户端做出选择,并且需要学习 HTML5(用于客户端)和 PHP(用于服务器)websocket 实现。对吗? 是的,差不多。玩得开心!

以上是关于HTML5 websockets vs PHP websockets vs node.js websockets?的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 php websocket

HTML5 / PHP WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:200

html5的websocket怎么在服务器端配置php

html5 websocket 示例,websocket在线聊天,php websocket实例

html5的websocket怎么在服务器端配置php 你是怎么解决的

php +html5 websocket 聊天室