2016-08-19 12 views
0

私はnode_sで、spawnとsocket.ioのメソッドを使ってpythonスクリプトを実行していました。私はコンソールで出力を得ています。ブラウザに表示することはできません。エラーを表示しています。私は以下のエラーを貼り付けました。誰でもこの問題を解決するのを助けてください。 sample.pysocket.ioとexpress-nodejsの設定を実行中にエラーが発生しました

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> 
:私は私のコードを貼り付けています。ここ this stackoverflow からこの例を持っています

私はこれを得ています。エラー

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) 

答えて

2

あなたはどこにでも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に渡す必要があります。いくつかの異なるオプションhereため

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

socket.ioのマニュアルを参照して:あなたは直接httpを自分でモジュールをロードする必要はありませんどこ

また、これを行うことができます。

+0

申し訳ありませんこれを投稿するのを忘れました。ここで私はサーバーを起動しています。 'var server = app.listen(8082、 '0.0.0.0'、function(){ var port = server.address()。ポート console.log("アプリケーションは%sでリッスンしています "、ポート) }); ' – naik3

+1

@ naik3 - 表示されていないコードには応答できません。あなたが実際のコードを投稿しない限り助けてください。 socket.ioをサーバに適切に接続していないようなエラーが表示されます。この行 'var io = require( 'socket.io')(http);は正しくありません。 – jfriend00

+0

@ naik3 - 「編集」リンクを使用して質問を修正することで、文脈の中で物事を見ることができます。上記のコードにかかわらず、あなたはまだsocket.ioを適切に初期化していません。疑問は、質問を理解するために他の人がコメントを読む必要がなくても、自分で立つべきです。 – jfriend00

関連する問題