Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5 websockets vs PHP websockets vs node.js websockets?_Php_Html_Node.js - Fatal编程技术网

HTML5 websockets vs PHP websockets vs node.js websockets?

HTML5 websockets vs PHP websockets vs node.js websockets?,php,html,node.js,Php,Html,Node.js,我已经决定在我的网站聊天应用程序中使用WebSockets,我刚刚开始学习WebSockets,但我有三个不同的选项,node.js、PHP或HTML5 我想知道的是,这三者之间有什么区别,我的意思是,如果其中任何一个比其他的好,我不想学习所有这三者。Web套接字是一种协议,它定义了双方如何进行通信。这是语言不可知论;任何语言都可以提供与另一个web套接字对话的适配器。您提到的三件事是此适配器的三种不同实现。对于聊天应用程序,您可能需要至少两个:一个服务器,一个客户端。选择要用哪种语言(PHP或

我已经决定在我的网站聊天应用程序中使用WebSockets,我刚刚开始学习WebSockets,但我有三个不同的选项,node.js、PHP或HTML5


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

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

什么是WebSocket:

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!");
});
WebSocket代表了双向实时的标准 服务器和客户端之间的通信。在任何服务器和任何 客户

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

所以,像任何其他协议一样,让我们像http一样说:您将需要一个客户机和一个服务器

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

对于客户端实现,您需要运行在浏览器上的html5 we 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!");
});
客户端:

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!");
});

变量套接字=io.connect(“http://localhost");
socket.on(“连接”,函数(){
console.log(“已连接!”);
});
注意:

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套接字是html5特性,在不支持html5的浏览器中不可用。您可以看到浏览器支持


如果您仍然选择PHP,您可以了解HTML5 WebSocket

好的。这意味着我必须为服务器和客户端做出选择,并且需要学习HTML5(用于客户端)和PHP(用于服务器)websocket实现。对吧?是的,差不多。玩得高兴每个人都使用