您的位置:首页 > 其它

socket.io建立长连接

2016-07-02 18:22 323 查看
  socket.io是基于node.js,在命令行里输入npmsocket.io下载模块,用node.js搭建后台示例代码,客户端
<!DOCTYPEhtml>
<htmllang="zh-CN">
<head>
<metacharset="UTF-8">
<title>Node.js</title>
<scripttype="text/javascript"src="/socket.io/socket.io.js"></script>
</head>
<body>
欢迎进入<br><br>
<inputtype="button"value="向服务器发送消息"onclick="sendMyMessage()"><br>
<inputtype="button"value="提醒服务器给我发送信息"onclick="sendMessage()"><br>
</body>
</html>

<scripttype="text/javascript">

//和服务器建立长连接
varsocket=io.connect('/');

//向服务器端发送自定义消息
functionsendMyMessage(){
socket.emit('custom','我是客户端的消息');
}

functionsendMessage(){
socket.emit('server','我是客户端,给我发送一个信息');
}

//接收服务器推送来的消息
socket.on('system',function(data){
alert(data)
});
//接收服务器推送来的消息

varnum1=0;

socket.on('test1',function(data){
num1++
console.log(data+num1)
});

//和服务器建立长连接
//socket.on('connect',function(){});
</script>
服务器端代码
//初始化系统库(引包)
varexpress=require('express');
varapp=express();
varserver=require('http').createServer(application);
//引入socket.io这个包
varsocketio=require('socket.io')(server);
varpath=require("path");
//加载前端文件index.html

//设置静态路径
app.use(express.static(path.join(__dirname,"views")));
app.get('/index',function(request,response){
response.sendFile('./views/index.html');
});

//监听用户连接事件
socketio.on('connection',function(socket){
//设置房间,获取用户当前的url,从而截取出房间id
//varurl=socket.request.headers.referer;

//接收客户端发送来的消息
socket.on('custom',function(data){
console.log(data)//我是客户端自定义的消息
});

socket.on('server',function(data){
//向客户端发送消息
socket.emit('system','hello!客户端')
});

});
server.listen(9004);
注:服务器端和客户端都用socket.emit()发送消息;socket.on()接收消息
服务器端:socket.emit('system','hello!客户端')

客户端:socket.on('system',function(data){
alert(data)
});
这两段代码对应,服务器发送消息,客户端接说消息
关键在于system这个字符串,这个相当这段消息的名字,只能接收同一个名字的消息



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: