HTML5 websockets vs PHP websockets vs node.js websockets?
我已经决定在我的网站聊天应用程序中使用WebSockets,我刚刚开始学习WebSockets,但我有三个不同的选项,node.js、PHP或HTML5HTML5 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或
我想知道的是,这三者之间有什么区别,我的意思是,如果其中任何一个比其他的好,我不想学习所有这三者。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实现。对吧?是的,差不多。玩得高兴每个人都使用