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、php 或 html5。
我想知道这三个之间有什么区别,我的意思是如果任何一个比其他更好,我不想学习所有三个。
【问题讨论】:
大家都用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 连接失败:WebSocket 握手期间出错:意外响应代码:200
html5 websocket 示例,websocket在线聊天,php websocket实例