私のアプリmongoose.jsとsocket.ioで使用します。私はmongooseコールバックでイベントを出そうとします。しかし、私のクライアント(角度)は何も受け取っていないようです。また、イベントがサーバーサイド、コールバック、および「ユーザー」データで発行されるたびに、連続的に切断されます。接続が確立する前にSocket.ioが閉じられています
正確には、私のユーザモデルは次のようにラップされている:
const mongoose = require('mongoose')
class DBReader {
constructor(name, schema) {
this.Model = require(`./models/${name}`)
}
find(params, callback) {
this.Model.find(params, callback)
}
findOne(params, callback) {
this.Model.findOne(params, callback)
}
findById(id, callback) {
this.Model.findById(id, callback)
}
}
module.exports = DBReader
そして、私はこのように私のユーザーをインスタンス化:
const User = new DBReader('user')
次のコード作品、それが私の言うことですクライアントは切断されず、2つのイベントを受信します(コールバックで 'ユーザー'データを送信しないために機能します)...
function socket(httpServer) {
const io = require('socket.io')(httpServer)
io.on('connection', socket => {
console.log('User connected')
socket.emit('hello', 'Hello World !')
User.findOne({}, (err, user) => {
console.log(err)
console.log(user) // Displays the requested user
})
socket.emit('hello', 'Wooorld !')
socket.on('disconnect',() => {
console.log('User disconnected')
})
})
}
このコードも機能します(私は 'ユーザー'データを出力しないため)。
function socket(httpServer) {
const io = socketio(httpServer)
io.on('connection', socket => {
console.log('User connected')
socket.emit('hello', 'Hello World !')
User.findOne({}, (err, user) => {
console.log(err)
console.log(user)
socket.emit('hello', 'hellooo !')
})
socket.emit('hello', 'Wooorld !')
socket.on('disconnect',() => {
console.log('User disconnected')
})
})
}
しかし、このコードは( 'ユーザデータとコールバックで放出されたイベント)は動作しません...
function socket(httpServer) {
const io = socketio(httpServer)
io.on('connection', socket => {
console.log('User connected')
socket.emit('hello', 'Hello World !')
User.findOne({}, (err, user) => {
console.log(err)
console.log(user)
socket.emit('hello', user)
})
socket.emit('hello', 'Wooorld !')
socket.on('disconnect',() => {
console.log('User disconnected')
})
})
}
あなたはどんな説明を持っていますか?詳しい情報が必要ですか?
? – willmaz
socket.io-client – Arpp
私の問題が送信しようとしているオブジェクトタイプから来る可能性があるのであれば、私は今思っています。私はsocket.ioがすべての仕事をしていると思ったが、私のユーザーが有効なJSON文字列でない場合はどうする? – Arpp