初试websocket
最近看了一些websocket方面的内容,感觉很有意思,想在本机上试一下,前前后后从网上下载了好几个demo的源码,结果都无法运行成功,socket一打开就立即关闭,不知何故。后来终于用socket.io整出了一个能正常运行,实现client与server通迅的小例子,先记下来。
1. 首先,先从http://nodejs.org上下载安装node.js,window XP下默认安装在C:\Program Files\nodejs。
2. 然后,在C:\Program Files\nodejs下运行npm install socket.io 安装socket.io。
3. 服务器端代码如下:
// 启动Socket.IO
var io= require('socket.io').listen(8088);
io.sockets.on('connection', function (socket) {
console.log("connected!");
socket.on('my event', function (msg) {
console.log("DATA!!!");
});
socket.on('disconnect',function(){
console.log('client has disconnected');
});
});
保存为一个js文件,如testSocketIO.js,放在C:\Program Files\nodejs目录或子目录下。
4. 客户端是一个html文件,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello World!</title>
<meta charset="utf-8">
<script src="http://192.168.1.115:8088/socket.io/socket.io.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var socket = io.connect('http://192.168.1.115:8088');
$("#button").click(function() {
socket.emit('my event' ,"Hello World!");
})
})
</script>
</head>
<body>
<button type="button" id='button'>Send Message</button>
</body>
</html>
5. 命令行下执行node testSocketIO.js运行server程序。
6. 客户端html文件可以直接用浏览器打开本地文件,也可以通过web工程发布用浏览器打开。
待深入学习。