0

我正在使用带有 nodejs 的 socket.io。所以我想从 URL 向所有客户端广播..

例如:

我的 nodejs 服务器:www.domain.com:7979

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

io.sockets.on('connection', function (socket) {



  socket.on('addRow', function (data) {
    console.log(data);
io.sockets.emit('newRow', data);
});

});

这是我的客户代码:

客户端.php

$(function(){


    var socket = io.connect('http://www.semtr.com:7979');
    socket.emit('addRow',{taskId:<?php echo $id ?>});
    //socket.disconnect();



});
</script>

当我调用我的 client.php vith 控制台时,我的 javascript 函数没有运行..

我想用这样的url调用nodejs函数。

http://www.domain.com:7979/addRow

或者

用 shell 调用这个 javascript 函数

socket.emit('addRow',{taskId:<?php echo $id ?>});

谢谢。

4

2 回答 2

0

如果您在服务器上发出,则必须在客户端收听结果,反之亦然:

服务器:

io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
});

客户:

socket.on('news', function (data) {
  console.log(data);
});
于 2012-09-13T09:38:52.940 回答
0

就像帕特里克说的那样,您应该在客户端有一个听众。还有一件事,你在服务器上得到什么了吗?它收到数据了吗?您没有指定未运行的部分。请记住,如果您的服务器正在侦听与您的 socket.io 模块相同的端口,您可以只使用 io.connect() 进行连接,也可能不匹配,请更具体。

`$(函数(){

var socket = io.connect();
socket.emit('addRow',{taskId:<?php echo $id ?>});
//socket.disconnect();

socket.on('newRow', function (data) {
    //do something with server's message
    console.log(data);
});

});`

于 2012-09-13T15:01:14.413 回答