Sockets 在sails v0.11(客户端)中发出消息

Sockets 在sails v0.11(客户端)中发出消息,sockets,socket.io,sails.js,Sockets,Socket.io,Sails.js,我对最新版本的sails.js(0.11.0)有一些问题。github中声明将接受普通socket.io代码并在sails.js中运行;但是,我只是试图在客户机单击以下内容时从客户机发出消息: $('#myBtn').on('click', function(){ io.socket.emit('message', { message: { subject: subject }, sender: id

我对最新版本的sails.js(0.11.0)有一些问题。github中声明将接受普通socket.io代码并在sails.js中运行;但是,我只是试图在客户机单击以下内容时从客户机发出消息:

$('#myBtn').on('click', function(){
     io.socket.emit('message', {  
         message: {
             subject: subject
         },
         sender: id
     });  

});
最后,我在
io.socket.emit()
aka
emit
不是io.socket的函数的行中得到了一个“uncaughttypeerror:undefined不是函数”

以下是我看过的一些参考资料:

我对最新版本的sails有一种感觉,我不应该发出这样的信息,我应该做一些事情:

io.socket.post('/user/message', data, function(data, jwres) {

});
下面的答案让我有些担心:

它指出,“教室”与
publishCreate
publishDestroy
Introduct
讣告一起被弃用

那么,我是遵循Pub/Sub范式,重新编写更多的“socket-io-ish”代码来利用sails蓝图&Pub/Sub,还是继续我的socket-io方式


是否有其他方法可以使用sails从客户端发送消息?

您是正确的,建议通过套接字与服务器通信的方法是使用RESTful。这样做的好处是,您可以使用常规的Sails路由和控制器/操作体系结构进行套接字通信,而不必在后端支持整个其他层的订阅和事件处理。这是@mikermcneil最初创建Sails的主要原因之一。有两点需要注意:

  • 您可以在控制器操作中使用来确定请求是否来自套接字,以及
  • 您可以使用
    io.socket.\u raw
    在客户端上获取原始的底层socket.io实例,该实例将具有
    emit
    方法。但同样,这不是推荐的做法