gpt4 book ai didi

javascript - 在 Node Js 上运行服务器时未定义套接字

转载 作者:行者123 更新时间:2023-12-03 11:53:11 24 4
gpt4 key购买 nike

我正在尝试使用 Node js 和 mongodb 创建一个聊天应用程序。我正在寻找这方面的教程。我无法解决运行文件 server.js 时未定义套接字的错误。服务器Js中的代码是

var mongo = require('mongodb').MongoClient,
client = require('socket.io').listen(8080).sockets;
console.log(mongo);
mongo.connect('mongodb://@127.0.0.1/chat',function(err,db) {
if(err) throw err;
client.on('connection',function() {
//Wait for Input
socket.on('input',function(data) {
console.log(data);
});
});

});

当我想在输入上监听套接字时,会创建错误。当我尝试将套接字定义为socket =io.connect('http://127.0.0.1:8080'); 它再次给出错误,指出 io 未定义。 io在nodejs上不是全局的吗?

请赐教一下。

最佳答案

如果您使用的是 Express,请尝试以下操作。

var express  = require('express'),
, app = express()
, server = require('http').Server(app)
, mongo = require('mongodb').MongoClient,
, io = require('socket.io')(server);

server.listen(3000, function() {
console.log("Server Running on port 3000");
});


mongo.connect('mongodb://@127.0.0.1/chat',function(err,db) {

io.sockets.once('connection', function(socket) {

io.sockets.emit('new-data', {
channel: 'stdout',
value: "My Data"
});

});

});

在你的 View 中.html

   <html>

<head>
<script src="https://cdn.socket.io/socket.io-1.0.6.js"></script>

var socket = io.connect('http://localhost');
var streamer = $('#streamer');

socket.on('new-data', function(data) {
streamer.val(data.value);
});
</head>

<body>
<div id="streamer"> </div>
</body>

</html>

关于javascript - 在 Node Js 上运行服务器时未定义套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25720576/

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