1

予告しますが、私は Javascript、node.js、socket.io の初心者です。これまでのところ、かなり驚くべきものでした。:)

現在、単純なユーザー名インターフェイスを作成しようとしています。クライアントは選択したユーザー名を入力し、ボタンをクリックして、ユーザー名をサーバーに送信して配列に入れるイベントを発生させます。

クライアントは正常に接続し、ハンドシェイクが発生します。しかし、ソケットはサーバーにデータを送信していません。

サーバ:

var io = require('socket.io').listen(8888);
var players = [];

io.sockets.on('connection', function (socket) {
socket.on('adduser', function(username) {
    players.push(username);
    console.log("Received: " + username);
    });
});

クライアント:

var socket = io.connect('/socket.io/socket.io.js');
function usernameSubmit(){
console.log("Button pressed");
var textfield = document.getElementById('usernamefield');
var username = textfield.value
if (username != ""){
    console.log(username);
    socket.send('adduser', username);
    console.log("Username submitted.");
}
else
    console.log("Blank username detected.");
}

助けてくれてありがとう!

4

1 に答える 1

1

代わりに .emit を使用する必要があります。そうすれば、オブジェクトを渡してサーバー上でアクセスできます。

クライアント:

if (username != ""){
    console.log(username);
    socket.emit('adduser', { username: username });
    console.log("Username submitted.");
}

サーバ:

socket.on('adduser', function(data) {
    players.push(data.username);
    console.log("Received: " + data.username);
});
于 2012-04-28T09:16:51.853 に答える