相关疑难解决方法(0)

socket.io:客户端发出的回调永远不会触发

使用socket.io只是为了概念验证,到目前为止,everthing工作得很好,除了我无法让我的emit回调在客户端工作.我必须在这里错过一些愚蠢的东西,但文档目前并不是杀手锏.服务器接收"getSomeData"事件就好了,任何地方都没有错误.

从我在客户端socket.io源中可以看出,它检查发出的最后一个参数是否是一个函数,并始终将其用作回调,但是调试任何比这更深的问题对我来说都是有问题的.

我觉得我必须在这里错过一些核心概念......这不是this.send(..)应该做的吗?我只能在示例应用程序中找到1个用法,而没有用于该事件发射的客户端代码的用户.

更新:为了清楚,我实际上故意发出事件客户端.这样做的目的是查看socket.io是否可以用于允许客户端除了接收推送之外还根据请求提取数据.

服务器:

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
    socket.on("getSomeData", function() {
        this.send({data: "some random data"});
    });
});
Run Code Online (Sandbox Code Playgroud)

客户端:( console.log永远不会发生)

<script type="text/javascript" src="http://localhost/socket.io/socket.io.js"></script>
<script type="text/javascript">
  var socket = io.connect('http://localhost');
  socket.emit("getSomeData", function(data) {
      console.log(data);
  });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript node.js socket.io

10
推荐指数
2
解决办法
3万
查看次数

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

我遇到了最新版本的sails.js(0.11.0)的一些问题.它在github中声明普通的socket.io代码将被接受并在sails.js中运行; 但是,当我们点击这样的东西时,我只是试图从客户端发出一条消息:

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

});
Run Code Online (Sandbox Code Playgroud)

我最终得到一个"遗漏的类型错误:未定义是不是一个函数"上线io.socket.emit()又名emit不是io.socket的函数.

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

我对风帆的更新版本有一种感觉,而不是发出消息我应该做的事情是:

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

});
Run Code Online (Sandbox Code Playgroud)

这里有一些关注我的答案:

它声明"课堂房间"与publishCreate,publishDestroyintroduce,以及obituary.

那么我是否遵循Pub/Sub范例,重新编写我的更多"socket-io-ish"代码以利用sails Blueprints和Pub/Sub,或者继续以我的socket-io方式?

是否有另一种使用风帆从客户端发出消息的方法?

sockets socket.io sails.js

5
推荐指数
1
解决办法
756
查看次数

标签 统计

socket.io ×2

javascript ×1

node.js ×1

sails.js ×1

sockets ×1