使用节点/套接字键入时自动更新文本框

时间:2014-01-19 00:25:54

标签: javascript node.js sockets http

我有一个带有套接字的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 个答案:

答案 0 :(得分:1)

我所要做的就是改变:

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

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