HTML5 websockets vs PHP websockets vs node.js websockets?

我决定使用WebSockets作为我的网站聊天应用程序,而我刚刚开始学习websockets,但我有三个不同的选项:node.js,PHP或HTML5。

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

Web套接字是定义双方如何通信的协议 。 这是语言不可知的; 任何语言都可以提供一个适配器与另一个Web套接字进行通信 你提到的三件事是这个适配器的三种不同的实现。 对于聊天应用程序,您可能至less需要两个:一个服务器,一个客户端。 select您希望使用哪种语言(PHP或Node.js)编写服务器,并使用浏览器中的HTML 5 Web套接字function与服务器通信。

什么是websocket:

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

WebSocket服务器可以使用任何服务器端编程语言编写,这些编程语言能够使用Berkeley套接字(如PHP或Node)。

所以像其他协议一样,可以说像http:你将需要一个客户端和一个服务器。

如前所述,web-sockets的服务器端实现可以使用任何一种服务器端语言来完成,包括PHP和Node。

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

所以你不需要同时学习PHP和Node,但是其中的一个加html5。

我build议使用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!"); }); 

注意:

客户端的networking套接字是html5function,而不支持html5的浏览器不能使用。 你可以在这里看到浏览器的支持

如果你仍然selectPHP,你可以在这里了解HTML5的websockets