我想在客户端与服务器建立连接后,利用socket.set保存数据。是不是nodejs,已经不支持这个set方法了。如果不支持,还可以用什么方法???
服务器端代码如下:
var app=require('express')();
var http=require('http');
var sio=require('socket.io');
var server=http.createServer(app);
app.get('',function (req,res) {
res.sendFile(__dirname+'/index.html')
});
server.listen(1337);
var socket=sio.listen(server);
socket.on('connection',function (socket) {
socket.on('set nickname',function (name) {
socket.set('nickname',name,function () {
socket.emit('send nickname',name);
});
});
socket.on('get nickname',function (err,name) {
socket.get('nickname',function (err,name) {
if(err) socket.emit('err',err.message);
else socket.emit('send nickname',name);
});
});
});
客户端代码如下:
<!DOCTYPE html>
<html>
<head>
<title>在服务器端保存用户数据</title>
<script src="socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket=io.connect();
function setNickName() {
socket.emit('set nickname',document.getElementById('nickname').value);
}
function getNickName() {
socket.emit('get nickname');
}
socket.on('send nickname',function (data) {
console.log('我的昵称为:'+data);
});
socket.on('err',function (data) {
console.log('服务器端出错,错误信息为:'+data);
})
</script>
</head>
<body>
昵称:<input type="text" id="nickname"/>
<input type="button" onclick="setNickName()" value="设置昵称"/>
<input type="button" onclick="getNickName()" value="获取昵称"/>
</body>
</html>
错误如下:
Missing error handler on socket
.
TypeError: socket.set is not a function
路过大侠,还望伸出援手,指点一二。。。