我正在处理涉及实时温度的项目,并且有一个设备通过get路由通过服务器发送临时数据并发送到套接字。然后,我希望服务器连接到原始套接字并将数据发送到正在由客户端读取的新数据。发射后无法连接到插座
这里是我的app.js
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
server.listen(8080);
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
app.route('/:temp')
.get(function (req, res){
var temp = req.params.temp;
res.end(temp);
io.sockets.on('connection', function(socket){
socket.emit('send temp', temp);
});
});
io.sockets.on('connection', function(socket){
socket.on('send temp', function(data){
console.log('connected to send temp');//this never shows in the console
io.sockets.emit('new temp', data);
});
});
在app.js的航线代码工作正常。当我打localhost:3000/test并更改客户端连接到'send temp'(而不是'new temp')时,会输出'test'。
这里是我的客户
var socket = io.connect();
var $temp = $('#temp');
socket.on('new temp', function(data){
$temp.html("Temp: " + "<br/>"+data);
});
我运行的节点版本4.1.2,1.3.7插座并表达4.10.8的相关部分。 我想知道为什么我无法第二次连接到原始套接字。或者这可能不是我的问题。我学习了许多“聊天”教程,并试图通过尝试做我想做的事而没有获得任何成功。
最终,我试图发生的事情是让客户端实时查看客户端命中/:temp,然后让其他客户端实时获取该数据。
这对我来说仍然有点新,所以任何帮助表示赞赏。
感谢您抽出宝贵的时间。我更新了一些清晰的内容并解释我正在尝试做什么。我想我正在接近这个错误,但期待您的反馈。 – cTwice
@cTwice - 根据你试图解决的实际问题的描述,我在答案的最后添加了一个新的部分。 – jfriend00
这就是我正在寻找的,感谢帮助。 – cTwice