PHPでソケットIOを使用することに関するいくつかの質問があります。私はnodejs/socket ioを初めて使用しているので、ごくわずかなことしか知らないので、ここ数日で使用し始めました。私はこれを私のウェブサイトに実装する予定です(今のところ私は少しのテスト例を構築しています)。Node.js +ソケットIO + Apache + PHPはURLからポートを削除しますか?
質問:現時点では、ポートを表示して機能させるために、ポートをローカルホストに追加する必要があります。ライブWebサイトではこれを実行できません。また、使用するとこれを行うこともできません。私のソケットioサーバーにポート4000を使用している場合、私は:localhost:4000に行かなければなりませんが、私はここに行くことができる必要があります:localhost:8888/mysitefolder(8888私のMAMPのためのポート、PHP用など)私は人々がこれを解決した質問で見ましたが、私は自分のために働くことができませんでした。ここで
は私のコードは次のとおりです。
chat.js
var app = require('express').createServer(),
io = require('socket.io').listen(app);
app.listen(4000);
var users = [];
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('connected');
socket.on('userID', function (userID) {
users.push(userID);
});
socket.on('message', function (message) {
socket.broadcast.emit('message-response', { data: message});
});
});
index.htmlを
<title>Testing</title>
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
function mktime(){
var newDate = new Date;
return newDate.getTime();
}
function appendMessage(data)
{
$("body").append(data+"<br />");
}
var socket = io.connect('http://localhost:4000');
socket.on('connected', function() {
//select id from database in real environment
socket.emit("userID", mktime());
});
socket.on('message-response', function (message) {
appendMessage(message.data);
});
$(document).ready(function(){
$('#input').keypress(function(event) {
if (event.keyCode != 13) return;
var msg = $("#input").val();
if (msg) {
socket.emit('message', msg);
appendMessage(msg);
$("#input").val('').focus();
}
});
});
</script>
<body>
<input type="text" id="input"><br>
</body>
「私は行けるようにする必要がありますか?」とはどういう意味ですか?「localhost:8888/mysitefolder」?あなたがする必要があるのは、jsファイルを "localhost:4000/socket.io/socket.io.js"のように正しく参照することだけです。エクスプレスサーバーは必要なく、JSコードでインデックスファイルを提供することもできます。 – alessioalex
よくlocalhost:8888は、MAMPが動作する場所で、PHPとすべてのために、mysitefolderはphpファイルが動作するためのフォルダです。 また、2つのファイルで何が変更されますか?私はすぐに試しましたが、エラーがあります。 (私が言ったように、私はこれで新しいので、すべての仕組みがわからない) –
心配しないで、私はそれを働かせた。ありがとう。 –