使用sails.js(0.10.0-rc5)的最新测试版我试图这样做:
sails new Test
cd Test
sails generate api user
创建文件assets / js / test.js
var socket = io.connect('http://localhost:1337');
socket.on('connect',function() {
console.log('connected');
socket.request('/user',{}, function(users) {
console.log(users);
});
socket.on('message', function(msg) {
console.log("Message: " + msg);
});
socket.on('user', function(msg) {
console.log("User: " + msg);
});
});
我的问题
console.log(“用户:”+ msg); 和 console.log(“消息:”+ msg); 在我没有收到任何消息创建或更新用户。 根据文档和介绍sails.js 视频,这个socket.io消息应该自动发送。
我在客户端成功接收sails.js / socket.io消息时缺少什么?
答案 0 :(得分:3)
如果您安装了最新的NPM版本,那么您还将拥有最新版本的Sails socket client。查看其page on Github的基本用法,然后查看PubSub section of the Sails migration guide,它解释了Sails v0.9.9x(Stro.js视频显示的简介)和最新版本之间的区别。最后,您的代码看起来应该更像:
// Note--the latest sails socket client connects automatically!
// Get all of the existing users--also subscribes to socket events
// for those users
io.socket.get('/user', function serverResponded (body, sailsResponseObject) {
console.log(body);
});
// When a socket message about a user is received, display it
io.socket.on('user', function(data) {
console.log(data);
});
备注强>
.watch()
的部分;这意味着您不再自动获取create
个事件,并且必须使用(User
模型)User.watch()
在您的服务器代码中订阅它们。/users
的AJAX调用将检索所有当前用户,但您不会订阅事件。必须使用io.socket.get
。