这里有新鲜出炉的 Node.js 教程,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
这篇文章主要介绍了 node.js 中的 socket.io 的广播消息, 需要的朋友可以参考下
在多个客户端与服务器端建立连接后, socket.io() 服务器具有一个 sockets 属性, 属性值为所有与客户端建立连接的 socket 对象. 可以利用该对象的 send 方法或 emit 方法向所有客户端广播消息.
io.sockets.send("user commected);
io.socket.emit("login",names);
案例
server.js 代码:
- var express=require("express");
- var http=require("http");
- var sio=require("socket.io");
- var app=express();
- var server=http.createServer(app);
- app.get("/", function (req,res) {
- res.sendfile(__dirname+"/index.html");
- });
- server.listen(1337,"127.0.0.1", function () {
- console.log("开始监听1337");
- });
- var io=sio.listen(server);
- var names=[];
- io.sockets.on("connection", function (socket) {
- socket.emit("login",names);
- socket.on("login", function (name) {
- names.push(name);
- io.sockets.emit("login",names);
- });
- });
- <!DOCTYPE html>
- <html>
- <head lang="en">
- <meta charset="UTF-8">
- <title>
- </title>
- <script src="/socket.io/socket.io.js">
- </script>
- <script>
- var socket = io.connect(); socket.on("login",
- function(names) {
- var str = ""; names.forEach(function(name) { str += "用户" + name + "已登录.<br/>";
- }); document.getElementById("result").innerHTML = str;
- });
- function add() { socket.emit("login", document.getElementById("nickname").value);
- }
- </script>
- </head>
- <body>
- 昵称
- <input type="text" id="nickname" />
- <div id="result">
- </div>
- <input type="button" onclick="add()" value="登录" />
- </body>
- </html>
运行结果:
在谷歌浏览器里面的登录, 可以在火狐中看到一模一样的结果.
这是一个美妙的现象, 也是一个让我万分惊喜的效果.
如此美妙的 node.
来源: http://www.phperz.com/article/17/0429/273943.html