これはおそらく単純な間違いです。私はsocket.ioを実行しているnodejsサーバーを持っています。サーバー内ですべてを動作させることができます。
ただし、PHP を介してノード サーバーに CURL ポストを作成し、データを送信できるようにしたいと考えています。サーバーにリクエストを受信させることはできますが、データを送信しようとすると、ソケットが定義されていないというエラーが表示されます。
これは私のコードでは明らかです。私の質問は、サーバーをセットアップする前に socket.io を要求するにはどうすればよいですか? 私のコードが私の問題を説明するのに役立つことを願っています:
var http = require('http')
, url = require('url')
, fs = require('fs')
, server;
server = http.createServer(function(req, res) {
// your normal server code
var path = url.parse(req.url).pathname;
switch (path){
case '/':
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<h1>Hello! <a href="/index.html">Enter</a></h1>');
res.end();
break;
case '/index.html':
fs.readFile(__dirname + path, function(err, data){
if (err) return send404(res);
res.writeHead(200, {'Content-Type': path == 'json.js' ? 'text/javascript' : 'text/html'})
res.write(data, 'utf8');
res.end();
});
break;
case '/write.html':
fs.readFile(__dirname + path, function(err, data){
if (err) return send404(res);
res.write(data, 'utf8');
res.end();
});
break;
case '/post':
console.log(req.toString());
socket.broadcast.emit('user', {state: 'PHP Post', userid: 'PHP'});
res.writeHead(200);
res.end();
break;
default: send404(res);
}
}),
send404 = function(res){
res.writeHead(404);
res.write('404');
res.end();
};
server.listen(843);
// socket.io
var io = require('socket.io').listen(server);
// Regular socket.io events