node.js 消息推送服务器,使用NodeJS服务器端推送

博主正在尝试使用NodeJS创建一个服务器,当接收到特定URL(如http://localhost:8000/inputData?data=hello)的请求时,向所有客户端的client.html页面推送数据,触发alert。目前遇到的问题是,尝试在服务器端使用socket.emit时,socket未定义。错误出现在尝试从inputData请求中发送数据时。博主知道需要先定义socket,但不确定如何操作。他们询问是否应该在服务器或不同的HTML文件(如inputData.html)中处理emit,并倾向于在现有代码基础上进行修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想使用NodeJS实现服务器端推送功能。 现在,我要的是一个监听请求到特定的URL(例如http://localhost:8000/inputData?data=hello)使用NodeJS服务器端推送

一旦这个请求,我想观看client.html所有客户端运行alert(hello);服务器。我所做的是下面的,在服务器端:

var app = require('http').createServer(handler),

io = require('socket.io').listen(app),

parser = new require('xml2json'),

fs = require('fs'),

url = require('url');

var qs = require('querystring');

app.listen(8000);

console.log('server listening on localhost:8000');

function handler(req, res) {

var url_parts = url.parse(req.url, true);

var pathname = url_parts.pathname;

switch(pathname){

case '/inputData':

var data = url_parts.query.data;

socket.emit('notifyData', data); //socket is undefined

break;

default:

fs.readFile(__dirname + '/client.html', function(err, data) {

if (err) {

console.log(err);

res.writeHead(500);

return res.end('Error loading client.html');

}

res.writeHead(200);

res.end(data);

});

}

;

}

在客户端,在client.html:

var socket = io.connect('http://localhost:8000');

socket.on('notifyData', function (data) {

alert(data);

});

我得到一个错误,说socket没有定义。我知道我应该早些定义它,但我不知道该怎么做。

这是否正确地解决此类问题?或者emit应该位于不同的文件中,例如inputData.html?我宁愿补充我已有的代码,因为我可能需要在var data= url_parts.query.data

+1

您是否在客户端包含了一个[reference](http://socket.io/download/)到socket.io? '' –

+0

是的我做过了' –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值