0

ユーザーがスレッドを仮想ホワイトボードに投稿できるようにする node.js フレームワークを使用して、単純なクライアントを構築しました。

ただし、新しいユーザーがセッションに参加するたびに、セッションに参加する前に他のユーザーが投稿したアイデアを表示することはできません。

1) この問題を軽減する最善の方法は、新しいユーザーがセッションに参加するたびにテキスト ファイルから古いスレッドを読み込むことだと判断しました。しかし、どうすればこれを行うことができますか?

2) このテキスト ファイルにデータを書き込む方法を知りたかったので、誰かがスレッドを投稿するたびにテキスト ファイルに書き込まれます。

3) このテキスト ファイルから値を削除することも可能かどうか知りたいですか? 管理者が仮想ホワイトボードからスレッドを削除できるようにする機能に取り組んでいます。値は現在クライアント側で削除されていますが、テキスト ファイルでも削除してほしいです。

これまでの私のコードは次のとおりです。

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.htm');
});

app.use(express.static(__dirname + '/assets'));

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

主要

jQuery(function ($) {

    $('#chat').on('click', '.delete', function(e) {
        $(this).parent().remove();
    });

    var socket = io.connect();
    var $messageForm = $('#sendmessage');
    var $messageTitle = $('#title');
    var $messageBox = $('#message');
    var $chat = $('#chat');

    $messageForm.click(function (e) {
        if ($.trim($("#title").val()).length === 0) {
            alert('You must provide valid input');
            $messageTitle.val('');
            $messageBox.val('');
            return false;
        }
        if ($.trim($("#message").val()).length === 0) {
            alert('You must provide valid input');
            $messageTitle.val('');
            $messageBox.val('');
            return false;
        } else {
            e.preventDefault();
            socket.emit('send message', '<span class="idea"><b>' + $messageTitle.val() + '</b>' + '&nbsp;-&nbsp;' + $messageBox.val() + '&nbsp;' + '[' + '<a class="delete" href="#">Delete</a>' + ']</span>');
            $messageTitle.val('');
            $messageBox.val('');
        }
    });

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

0 に答える 0