gpt4 book ai didi

Node.js Websocket Socket.io Steam MongoDB 不保存数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:23:58 27 4
gpt4 key购买 nike

我的网站托管在 GoDaddy。我在 DigitalOcean 有 VPS。

我将访问我的网站(在 GoDaddy 托管)并有一个输入字段(我们将其命名为贸易链接字段,因为它应该包含 URL)。

用户将 URL 输入“交易链接”字段 > 按“保存”按钮 > 数据正在通过 Websocket 发送到 VPS(在 DigitalOcean) > 数据正在保存在 MongoDB 中。

最后一步不起作用。我有一些代码可以记录控制台上的内容:

{"type":1,"steamid":"76561198092387621","link":"steamcommunity.com/tradeoffer/new/?partner=THISISURL";} 

所以服务器正在接收数据,没问题。现在有问题。该数据需要保存到 MongoDB 中。

<小时/>

让我们开始在我的网站 (GoDaddy) 上输入字段:

<input type="text" rel="get-trade-link" id="par2" name="par2" placeholder="https://steamcommunity.com/tradeoffer/new/?partner=URL">
<div class="btn-yellow save-link">

然后是 script.js 文件(Godaddy):

var socket = io.connect('http://url:8303');
ws = new WebSocket('ws://url:8305');

function sendTradeLink(tradelink){
ws.send(JSON.stringify({
type: 1,
steamid: getSteamID(),
link: tradelink
}));
}

$(document).on('click', '.save-link', function() {
var link = $('input[rel="get-trade-link"]').val();
if (link.indexOf('https://steamcommunity.com/tradeoffer/new/?partner=') < 0) {
} else {
sendTradeLink(link);
}
}
});

VPS:

var io = require('socket.io').listen(8303);


// all another
var MongoClient = require('mongodb').MongoClient;

var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ port: 8305 });

wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});

ws.send('something');
});

socket.on('1', function(data){
updateTradeLink(data.steamid, data.link);
});

'1' - 我认为它的意思是“类型”。不是我的剧本,是我买的,但是和他沟通很难。

    socket.on('link', function(data){
userListDB.find({'steamid':data.steamId, 'type' : 'link'}).toArray(function(err, list) {
socket.emit('link', { list : list });
});
});

function updateTradeLink(sid, link) {
if(!g_Mongoconnected)
return 0;

existUser(sid, function(exist){
if(exist) {
userListDB.update({steamid: sid}, {steamid: sid, tradelink: link, type : 'link'});
} else {
userListDB.insert({steamid: sid, tradelink: link, type : 'link'}, {w:1}, function(err) {
if(err) {
helper.log('Error inserting tradelink', 485, err);
}
});
}
});
}

P.S 我买了那个脚本并自己添加了那部分代码:

var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ port: 8305 });

wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});

ws.send('something');
});

编辑:

MongoClient.connect('mongodb://localhost:27017', function (err, db) {
if (err) {
helper.log('Mongodb connection error', 425, err);
return 0;
}

userListDB = db.collection('users');
gameDB = db.collection('gamedb');
g_Mongoconnected = true;
helper.msg('mongo connected');

gameDB.find({name: 'counter'}).toArray(function (error, list) {
if(list.length == 0) {
currentGame=0;
gameDB.insert({name: 'counter', counter: 0}, {w:1}, function(err) {if(err) console.log('Error <1>');});
} else {
currentGame = list[0].counter;
}
});
});

最佳答案

尝试这个修改:

wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
if(message.type == 1){
updateTradeLink(message.steamid, message.link);
};
if(message.type =='link'){
userListDB.find({'steamid':message.steamId, 'type' : 'link'}).toArray(function(err, list) {
ws.emit('link', { list : list });
}
};
});
});

然后进入 Mongo DB 内容:

function updateTradeLink(sid, link) {
if(!g_Mongoconnected){
console.log('Oops. Mongo DB not connected..');
return 0;
}

existUser(sid, function(exist){
if(exist) {
userListDB.update({steamid: sid}, {steamid: sid, tradelink: link, type : 'link'});
} else {
userListDB.insert({steamid: sid, tradelink: link, type : 'link'}, {w:1}, function(err) {
if(err) {
helper.log('Error inserting tradelink', 485, err);
}
});
}
});
}

关于Node.js Websocket Socket.io Steam MongoDB 不保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31573984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com