Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用socket.io在应用程序之间通信_Node.js_Socket.io - Fatal编程技术网

Node.js 使用socket.io在应用程序之间通信

Node.js 使用socket.io在应用程序之间通信,node.js,socket.io,Node.js,Socket.io,我有一个需要向服务器发送状态日志的应用程序,但我正在努力发送数据 我的代码是:(我正在使用localhost,因为我现在没有另一台计算机进行测试;在实际情况中,多个应用程序将与服务器通信) 下面是来自服务器的代码: function log(LOG, message) { if(!message) { console.log('S-\t' + LOG); } else { console.log('S-\t' + LOG + :\t' + mess

我有一个需要向服务器发送状态日志的应用程序,但我正在努力发送数据

我的代码是:(我正在使用localhost,因为我现在没有另一台计算机进行测试;在实际情况中,多个应用程序将与服务器通信)

下面是来自服务器的代码:

function log(LOG, message) {
    if(!message) {
        console.log('S-\t' + LOG);
    } else {
        console.log('S-\t' + LOG + :\t' + message);
    }
}

exports.start = function start() {
    log('SERVER');
    var io = require('socket.io');
    log('Server start');
    io.sockets.on('connection', function socket) {
        log('Connection from', socket);
        socket.on('data', function (m) {
            log('mail', m);
        });
    });
}
我用一个bash命令同时启动它们,会出现多个错误。我不知道出了什么问题

错误包括:

服务器:

    io.sockets.on('connection', function (socket) {
               ^
TypeError: Cannot call method 'on' of undefined
    at Object.start
    at process.i
    at process.EventEmitter.emit
    at handleMessage
    at Pipe.channel.onread
应用程序:

var socket=io.connect();
TypeError:对象#没有方法“connect”
为空。\u超时
at Timer.listOnTimeout[作为ontimeout]
我刚从npm安装了socket.io。node.js的版本是v0.10.21

编辑:socket.io是9.16版
但我想强调的是,服务器不会自行启动应用程序,它们是分开启动的,与发送html页面的示例不同,它是一个自包含的node.js应用程序。

我假设您安装了1.0版本,该版本的API与0.9不同


上的文档仍然引用0.9,因此您必须查看github上的自述文件以获取新的方法签名:

问题是,有没有办法直接获取0.9版本?我是socket.io的新手,我更喜欢有很多示例/文档,而不仅仅是一个源代码。当我开发时,您可以在package.json中强制使用0.9版本,或者在npm安装版本中指定它:npm install@Ah,我已经快速验证了,npm自动下载了socket.io 9.16,很抱歉重新开始这个问题。
    io.sockets.on('connection', function (socket) {
               ^
TypeError: Cannot call method 'on' of undefined
    at Object.start
    at process.i
    at process.EventEmitter.emit
    at handleMessage
    at Pipe.channel.onread
    var socket = io.connect();
TypeError: Object #<Object> has no method 'connect'
    at null._onTimeout
    at Timer.listOnTimeout [as ontimeout]