nodejs socket.io初探
1、安装socket.io
npm install socket.io
2、创建服务端代码server.js
var app = require('http').createServer(handler),
io = require('socket.io').listen(app),
fs = require('fs')
app.listen(8080);
io.set('log level', 1);//将socket.io中的debug信息关闭
function handler (req, res) {
fs.readFile(__dirname + '/index.html',function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(data);
});
}
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
3、创建客户端代码 index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ssocket</title>
<script type="text/javascript" src="http://localhost:8080/socket.io/socket.io.js"></script>
</head> <body>
<script type="text/javascript">
var socket = io.connect('http://localhost:8080');
socket.on('news', function (data) {
alert(data.hello);
socket.emit('my other event', { my: 'data' });
});
</script> </body>
</html>
4、执行结果
启动服务端:
node server.js
在浏览器输入 http://localhost:8080/index.html
浏览器打印出: world
命令行打印出:{ my: 'data' }
5、更多资料参见官方网站 http://socket.io/#how-to-use
6、服务端向指定客户端发送消息
思路是客户端与服务端建立连接的时候,服务端保存客户端的信息,做一个socketMap, 在socketMap中取出需要发送消息的客户端,向该客户端发送消息
做一个模拟的简单例子,这里用的是数组:
var sockets = [];
var i = 1;
io.sockets.on('connection', function (socket) {
sockets[i] = socket;
i++;
socket = sockets[1]; //这里指定向第一个客户发送消息
console.log(i); socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
nodejs socket.io初探的更多相关文章
- nodejs + socket.io + redis 新手上路
最近要更新网站架构了,决定转入 nodejs + socket.io + redis 方式. 战斗刚开始: 网上的文章太松散,我根据各个网友的分享进行整理 ,让大家可以方便上手. 进入node.js之 ...
- NodeJS + Socket.io搭建聊天服务器
第一步:安装node git clone https://github.com/joyent/node.git cd node git checkout v0.10.33-release ./conf ...
- nodejs+socket.io即时聊天实例
在这之前你应该先安装好 Node.js,安装过程不再讲解 首先在你的电脑上创建一个新目录,姑且命名为 chat,然后在该目录创建两个文件,分别是 app.js 和 index.html. app.js ...
- nodeJs+socket.io
1.先安装npm和node 2.安装socket.io npm install socket.io 3.html <!DOCTYPE html> <html lang="e ...
- nodeJS+socket.io传递消息
服务器端 安装express,socket.io npm install express --save-dev npm install socket.io --save app.js const ex ...
- NodeJS + Socket.io聊天服务器连接数达到1024后就连不上了
如果是亚马逊的Engine Yard服务器,解决办法为: 1.查看端口占用情况,找到nodejs进程号,例如我这里是8000端口 lsof -i:8000 找到pid 例如为 8213 2.设置no ...
- Socket.io+Notification实现浏览器消息推送
前言 socket.io: 包含对websocket的封装,可实现服务端和客户端之前的通信.详情见官网(虽然是英文文档,但还是通俗易懂).Notification: Html5新特性,用于浏览器的桌面 ...
- 在web浏览器上显示室内温度(nodeJs+arduino+socket.io)
上次的nodejs操作arduino入门篇中实现了如何连接arduino.这次我们来实现通过arduino测量室内温度并在浏览器上显示出来. [所需材料] 硬件:LM35温度传感器,arduino u ...
- NodeJS+Express+Socket.io的一个简单例子
关键字:NodeJS,Express,Socket.io. OS:Windows 8.1 with update pro. 1.安装NodeJS:http://nodejs.org/. 2.初始化一个 ...
随机推荐
- VueJS循环语句:v-for
v-for 指令需要以 item in items 形式的特殊语法, items 是源数据数组并且 item 是数组元素迭代的别名. HTML <!DOCTYPE html> <ht ...
- 简单的js表单验证框架
/** * 通常在我们的HTML页面表单中有大量的数据验证工作, * 免不了要写很多验证表单的js代码,这是一项非常繁琐 * 枯燥的工作.很多程序员也会经常遗漏这项工作.当然 * 一些JavaEE框架 ...
- python学习(三)数字类型示例
奶奶的报了这个错,我以为可以像java中字符串加数字的嘛 Traceback (most recent call last): File "./number.py", line ...
- 30天自制操作系统(二)汇编语言学习与Makefile入门
1 介绍文本编辑器 这部分可直接略过 2 继续开发 helloos.nas中核心程序之前的内容和启动区以外的内容先不讲了,因为还涉及到一些软盘方面的知识. 然后来讲的是helloos.nas这个文件 ...
- MongoDB的选举过程(转)
转自:http://www.mongoing.com/archives/295 MongoDB的复制集具有自动容忍部分节点宕机的功能,在复制集出现问题时时,会触发选举相关的过程,完成主从节点自动切换. ...
- 8148之更换摄像头出现异常---REISZER OVERFLOW OCCURED: RESTARTING
my iss config as: rsz_reg->SRC_VSZ = 1079;//715; rsz_reg->SRC_HSZ = 1919;//1277; rszA_reg ...
- js new一个函数和直接调用函数的差别
用new和调用一个函数的差别:假设函数返回值是一个值类型(Number.String.Boolen)时,new函数将会返回这个函数的实例对象.而假设这个函数的返回值是一个引用类型(Object.Arr ...
- [python学习] 简单爬取图片站点图库中图片
近期老师让学习Python与维基百科相关的知识,无聊之中用Python简单做了个爬取"游讯网图库"中的图片,由于每次点击下一张感觉很浪费时间又繁琐.主要分享的是怎样爬取HTML的知 ...
- python 基础 1.5 python数据类型(四)--字典常用方法示例
一. 字典 #字典 dict1 = {'name':'lzc','age':'20','sex':'man'} print dict1 print type(dict1) >>> { ...
- TCP/IP状态详解
今天犯懒了,本来自己也做了一些相应的笔记,但是发现这篇写的更好一些,简单易懂,而且有图有真相,为了方便以后查看,在此转载了,在此基础上加了自己的笔记 TCP正常建立和关 ...