Node.js 使用socket.io在应用程序之间通信
我有一个需要向服务器发送状态日志的应用程序,但我正在努力发送数据 我的代码是:(我正在使用localhost,因为我现在没有另一台计算机进行测试;在实际情况中,多个应用程序将与服务器通信) 下面是来自服务器的代码: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
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]