我决定将WebSockets用于我的网站聊天应用程序,我刚开始学习websockets,但我有三个不同的选项,node.js,PHP或HTML5。
我想知道三者之间有什么不同,我的意思是,如果有人比其他人好,我不想学习所有三个。
答案 0 :(得分:7)
Web套接字是协议,它定义了双方如何进行通信。这是语言不可知的;任何语言都可以提供适配器与另一个Web套接字通信。你提到的三件事是这个适配器的三种不同的实现。对于聊天应用程序,您可能至少需要其中两个:一个服务器,一个客户端。选择您要编写服务器的语言(PHP或Node.js),并使用浏览器中的HTML 5 Web套接字功能与服务器通信。
答案 1 :(得分:0)
什么是websockets:
WebSockets代表双向实时的标准 服务器和客户端之间的通信在任何服务器之间 客户端。
WebSocket服务器可以用任何能够使用Berkeley套接字的服务器端编程语言编写,例如PHP或Node。
就像任何其他协议一样,让我们说像http:你将需要一个客户端和一个服务器。
如前所述,web-socket的服务器端实现可以使用任何一种服务器端语言来完成,包括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!");
});
注意:强>
客户端的网络套接字是html5功能,在不支持html5的浏览器中不是availbale。您可以看到浏览器支持here
如果你仍然选择PHP,你可以了解HTML5 websockets here