gpt4 book ai didi

javascript - 运行 socket.io 和express-nodejs 设置时出错

转载 作者:行者123 更新时间:2023-12-02 14:15:59 25 4
gpt4 key购买 nike

我正在研究使用spawn和socket.io方法执行python脚本的nodejs。我在控制台上得到输出。但我无法在浏览器上显示它。它显示错误。我已将错误粘贴到下面。任何人都可以帮我解决这个问题吗?我从 this stackoverflow 得到了这个例子我在这里粘贴我的代码:sample.py

import random, time
for x in range(10):
print(str(random.randint(23,28))+" C")
time.sleep(random.uniform(0.4,5))

index.js

var express = require("express");
var path = require('path');
var bodyParser = require('body-parser');
var fs = require('fs');
var spawn = require('child_process').spawn;
var http = require('http').Server(app);
var io = require('socket.io')(http);

var app = express();
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
app.post('/showtemp',function(req,res){
var pathtoScript = spawn('python', ["../External_scripts/sample.py"]);
pathtoScript.stdout.on('data', function (output) {
var val = String(output);
console.log(val);
io.sockets.emit('response', { data: val});
});
})
var server = app.listen(8082,'0.0.0.0', function () {

var port = server.address().port

console.log("App is listening at %s", port)

});

index.html页面

<!doctype html>
<html>
<head>
<title>Live temperature</title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<div id="liveTemp">Loading...</div>

<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script>
var socket = io();
socket.on('response',function(msg){
console.log("msg");
$('#liveTemp').html(msg.data);
})
});
</script>

</body>
</html>

我收到此错误

GET http://localhost:8082/socket.io/?EIO=3&transport=polling&t=LQSVrTN 404 (Not Found)
GET http://localhost:8082/socket.io/?EIO=3&transport=polling&t=LQSVrTN 404 (Not Found)

最佳答案

您尚未在任何地方启动 Web 服务器或将 socket.io 连接到它。有几种不同的方法可以做到这一点,但这里有一种有效的方法:

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);

server.listen(80);

注意:您必须在某处看到 server.listen() (或等效项)。 并且,您需要将服务器传递给 socket.io,以便它可以挂接到它。

您也可以在不需要直接加载 http 模块的情况下执行此操作:

var express = require('express');
var app = express();
var server = app.listen(80);
var io = require('socket.io')(server);

socket.io 文档提供了几个不同的选项 here .

关于javascript - 运行 socket.io 和express-nodejs 设置时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39031156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com