账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    node ws如何把发送对象储存到数据库?
    62
    0

    如下代码中,对某个人发送消息的对象是连接时回调的一个参数,但是这样储存发送对象在多人 连接的情况下会内存爆满(我的理解),那么怎么样把这个对象储存到缓存数据库?

    var WebSocketServer = require('ws').Server,
    wss = new WebSocketServer({ port: 3012 });
    
    function startFunction(){
        var  client = {};
        wss.on('connection', function (ws) {
            
            var clientName = Math.random().toString(36).slice(-8)+Math.random().toString(36).slice(-8)
    
            client[clientName] = ws
    
            ws.send(JSON.stringify({function:"setName",data:{name:clientName}}))
    
            ws.on('close', function(){
                delete client[clientName]
            })
    
            ws.on('message', function (message) {
                console.log(message)
            });
    
        });
    }
    
    module.exports={
        start:function(){
            startFunction()
        }
    }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 在Node.js中,可以使用ws库来创建WebSocket服务器,然后使用数据库来存储发送的对象。以下是一个简单的示例:

      首先,你需要安装ws和sqlite3库。你可以使用npm来安装:

      bash npm install ws sqlite3

      然后,你可以创建一个WebSocket服务器:

      ```javascript const WebSocket = require('ws'); const sqlite3 = require('sqlite3').verbose();

      const db = new sqlite3.Database(':memory:', (err) => { if (err) { console.error(err); return; } console.log('Connected to database');

      // 在这里,你可以插入你的数据 db.run('INSERT INTO users (name, email) VALUES (?, ?)', ('John Doe', 'john.doe@example.com'))); db.run('INSERT INTO users (name, email) VALUES (?, ?)', ('Jane Doe', 'jane.doe@example.com')); db.run('INSERT INTO users (name, email) VALUES (?, ?)', ('Bob Smith', 'bob.smith@example.com'));

      // 提交更改 db.commit(); });

      const wss = new WebSocket.Server({ port: 8080 });

      wss.on('connection', ws => { ws.on('message', message => { console.log(Received message: ${message}); });

      // 在这里,你可以向WebSocket服务器发送数据 ws.send(JSON.stringify({ name: 'Alice', email: 'alice@example.com' })); });

      wss.listen(8080); ```

      在这个示例中,我们首先创建了一个SQLite数据库,并在其中插入了一些用户的数据。然后,我们创建了一个WebSocket服务器,并在其中监听WebSocket连接。每当有新的消息到达WebSocket服务器时,我们就打印出这个消息。最后,我们向WebSocket服务器发送一个JSON字符串,其中包含了用户的名字和电子邮件地址。

      请注意,这只是一个基本的示例,实际的代码可能需要处理更复杂的情况,例如错误处理、数据验证、消息处理等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部