2014-01-19 54 views
0

我有一個帶有套接字的小node.js應用程序。我的目標是讓我的網頁打開一臺機器,並打開一個單獨的網頁。當我將文本粘貼到機器1的頁面上時,我希望它能夠在機器2上自動更新。當我在機器2上粘貼文本時,我希望先前的文本從機器1中刪除,並使用機器2中的文本進行更新。當您使用節點/套接字鍵入時自動更新文本框

目前我有兩個獨立的瀏覽器窗口中運行的頁面。在機器1中輸入「a」,機器2上出現「a」。

在機器1上我輸入「b」,機器2上出現「ab」。它不斷追加!

視頻http://instagram.com/p/jVIgTZE2Ib/

app.js

var express = require('express'), 
    app = express(), 
    server = require('http').createServer(app), 
    io = require('socket.io').listen(server); 

server.listen(3000); 

app.get('/', function(req, res){ 
    res.sendfile(__dirname + '/index.html'); 
}); 

io.sockets.on('connection', function(socket){ 
    socket.on('send message', function(data){ 
     io.sockets.emit('new message', data); 
    }); 
}); 

的index.html

<textarea id="chat"></textarea> 
    <!-- <textarea size="35" id="message"></textarea> --> 

    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script src="/socket.io/socket.io.js"></script> 
    <script> 
jQuery(function($){ 

    var socket = io.connect(); 
    // var $messageForm = $('#send-message'); 
    // var $messageBox = $('#message'); 
    var $chat = $('#chat'); 

    $chat.keyup(function(e){ 
     // var code = e.keyCode || e.which; 
     // if(code == 13) { //Enter keycode 

       e.preventDefault(); 
       socket.emit('send message', $chat.val()); 

     // } 
    }); 

    socket.on('new message', function(data){ 
     // $chat.val(''); 
     $chat.append(data + "<br/>"); 
    }); 
}); 
</script> 

回答

1

我所要做的就是改變:

socket.on('new message', function(data){ 
     $chat.append(data + "<br/>"); 
    }); 

socket.on('new message', function(data){ 
    $chat.val(data); 
}); 
+0

呵呵呵,是的..我喜歡你怎麼說:「這是不斷追加」,然後通過它去「追加」的代碼讀取:) – ExxKA

+0

是啊,我的錯誤,99%的就像最明顯的哈哈一樣。 – eveo

相關問題