작성
·
400
·
수정됨
0
제 파일이 전부 js 파일이라서 ts,tsx대신 전부 js파일로 만들었습니다.웹소켓연결이 안됩니다 ㅠ.꼭 타입스크립트를 써야만 하는 것 인가요 ?
웹소켓은 채팅페이지에서 불렀습니다.
답변 2
0
0
네 직접 몽고디비와 연결해서 chatinglist와 chating 페이지로 라우팅해서 직접 만들었습니다.여기서 chating페이지를 실시간으로 만들고싶어서 웹소켓연결을 하려고하는데 안됩니다.
채팅페이지입니다.
import { connectDB } from "@/util/database";
import { ObjectId } from "mongodb";
export default async function handler(req, res) {
const obj = JSON.parse(req.body);
const dt = new Date();
let hours = ("0" + dt.getHours()).slice(-2);
let minutes = ("0" + dt.getMinutes()).slice(-2);
let hours_check;
if (Number(hours) < 12) {
hours_check = "오전";
} else {
hours_check = "오후";
}
let timeString = hours + ":" + minutes;
let client = await connectDB;
let db = client.db("chatmessage");
let result = await db.collection("message").insertOne({
message: obj.message,
parent_id: req.query._id,
date:
dt.getFullYear() +
"-" +
(dt.getMonth() + 1) +
"-" +
dt.getDate() +
"-" +
`${hours_check} ${timeString}`,
date_y_m_d:
dt.getFullYear() + "-" + (dt.getMonth() + 1) + "-" + dt.getDate(),
writer: obj.session.user.name,
check: "true",
});
let db1 = client.db("chating");
let result1 = await db1
.collection("chatroom")
.updateOne(
{ _id: new ObjectId(req.query._id) },
{ $set: { last: obj.message } }
);
let result2 = await db1
.collection("chatroom")
.updateOne(
{ _id: new ObjectId(req.query._id) },
{ $set: { last_typing: obj.session.user.name } }
);
let result3 = await db1.collection("chatroom").updateOne(
{ _id: new ObjectId(req.query._id) },
{
$set: {
date:
dt.getFullYear() +
"-" +
(dt.getMonth() + 1) +
"-" +
dt.getDate() +
"-" +
`${hours_check} ${timeString}`,
},
}
);
let result4 = await db1.collection("chatroom").updateOne(
{ _id: new ObjectId(req.query._id) },
{
$set: {
in_chatroom_date_check_update:
dt.getFullYear() + "-" + (dt.getMonth() + 1) + "-" + dt.getDate(),
},
}
);
res.status(200).json("t");
}
https://socket.io/how-to/use-with-nextjs
이렇게 세팅하셔야 합니다.