inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

socket.io 실행

미해결

안녕하세요 채팅을 구현하기위해 socket.io를 썼는데 통신이 안되는 것같습니다 io에 주소를 제대로 넣었고 서버 on 마다 클라이언트에서 emit으로 작성했는데 작동하지 않습니다 이유가 무엇일까요? // server 파일의 코드입니다 require('dotenv').config(); const { createApp } = require('./app'); const { appDataSource } = require('./models/index'); const startServer = async () => { const app = createApp(); const PORT = process.env.PORT; await appDataSource .initialize() .then(() => { const server = app.listen(PORT, () => { console.log(`🟢server is listening on ${PORT}🟢`); }); const io = require('socket.io')(server, { cors: { origin: true, credentials: true, }, }); const { socketMessage } = require('./middlewares/socket.io'); socketMessage(io); }) .catch((err) => { console.log(`❌Failed server connect❌`); appDataSource.destroy(); }); }; startServer(); // server의 socket 파일의 코드입니다 const jwt = require('jsonwebtoken'); const chatDao = require('../models/chatDao'); const { catchAsync } = require('../utils/error'); const socketMessage = (io) => { io.use((socket, next) => { const token = socket.handshake.headers.authorization; if (!token) { return next(new Error('Authentication error')); } jwt.verify(token, process.env.SECRET_KEY, async (err, decoded) => { if (err) { return next(new Error('Authentication error')); } userId = decoded.userId; next(); }); }); io.on('connection', (socket) => { console.log('A User Connected.'); socket.on( 'create_room', catchAsync(async (postId, callback) => { const room = await chatDao.createRoom(userId, postId); socket.join(room.raw.insertId); callback(room.raw.insertId); }) ); socket.on( 'enter_room', catchAsync(async (roomId, callback) => { socket.join(roomId); callback(roomId); }) ); socket.on('new_text', async (content, roomId, callback) => { await chatDao.createChat(userId, content, roomId); socket.to(roomId).emit('new_text', content); callback(content); }); socket.on('disconnect', () => { console.log('접속이 해제되었습니다', socket.id); clearInterval(socket.interval); }); socket.on('error', (error) => { console.error(error); }); ​ socket.on('send', (data) => { console.log(data); socket.emit('reply', { data, }); }); socket.interval = setInterval(() => { socket.emit('news', 'Hello Socket.IO'); }, process.env.SOCKET_INTERVAL || 1000); }); }; module.exports = { socketMessage }; ​ // client 코드입니다 import React, { useState, useContext } from 'react'; import io from 'socket.io-client'; import './chat.css'; import { MenuContext } from '../../components/Nav/MenuProvider'; const Token = localStorage.getItem('accessToken'); const socket = io.connect('http://192.168.0.194:4000', { withCredentials: true, extraHeaders: {Authorization: `Bearer ${Token}` } appDataSource.destroy(); }), }); socket.on('connection', () => { console.log('Connected to server'); }); const Chat = () => { const [roomId, setRoomId] = useState([]); const [searchData, setSearchData] = useContext(MenuContext); const handleCreateRoom = event => { event.preventDefault(); socket.emit('create_room', searchData, ({ searchData, roomId }) => { console.log(`Joined room ${roomId}`); setRoomId(roomId); }); }; const handleJoinRoom = roomId => { socket.emit('enter_room', roomId, roomId => { console.log(`Joined room ${roomId}`); setRoomId(roomId); }); }; const handleNewText = content => { socket.emit('new_text', content, roomId, content => { console.log(`Sent message: ${content}`); }); }; const handleNewText = content => { socket.emit('new_text', content, roomId, content => { console.log(`Sent message: ${content}`); }); }; const onCheckEnter = e => {if (e.key === 'Enter') { handleNewText(); } }; return ( <div className="h-screen pt-36"> <button onClick={handleCreateRoom}>테스트</button> <button onClick={() => handleJoinRoom(roomId)}>테스트2</button> <input id="input-text" type="text" onKeyDown={onCheckEnter} /> <button onClick={handleCreateRoom}>제출</button> </div> ); }; export default Chat;

  • react
  • javascript
  • socket
  • socket.io
  • node.js
bin 댓글 1 좋아요 0 조회수 745

mysql_secure_installation password 질문이요

미해결

[리뉴얼] React로 NodeBird SNS 만들기

... Failed! Error: SET PASSWORD has no significance for user 'root'@' localhost ' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters. 구글링도하고 mysql다시깔아서 local password도 다시 설정했는데 자꾸 이 오류가 나오네요.. 혹시 해결 방법이 있을까요?

  • react
  • redux
  • node.js
  • express
  • next.js
dsfsdf 댓글 2 좋아요 0 조회수 663

if __name__=="__main__" 사용 기준

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

강사님 안녕하세요 :) 유익한 강의 잘 듣고 있습니다! 학습 중 궁금한 점이 있어서 질문드립니다. 강사님께서 DFS문제 외에도 코드 시작 부분에 이 코드를 작성하실 때가 종종 있는데 혹시 강사님의 사용 기준이 있는지 궁금합니다. ex) [섹션 8] 회장뽑기(플로이드-와샬) 사용 O vs 위상정렬(그래프 정렬) 사용 X

  • python
  • 코딩-테스트
댓글 1 좋아요 0 조회수 386

이미지 업로드시 데이터베이스에 올리는법

미해결

PHP 개발자의 최종 테크트리, 라라벨 강의

안녕하세요 이미지 업로드 수업중 궁금한게 있어서요! 기존 강의에서는 이미지늘 storage 폴더에만 올리고 작업하시던데 보통은 데이터베이스에 올리고 다운받고 하더라구요 아니면 보통 라라벨 이미지 및 기타 파일 업로드, 다운로드는 보통 어떻게 하나요??

  • php
  • Laravel
newnew1234 댓글 1 좋아요 0 조회수 580

삭제 관련 문의

미해결

PHP 개발자의 최종 테크트리, 라라벨 강의

안녕하세요? crud 수업중 질문 삭제 기능이 안되어서요;; 아래와 같이 코드를 짜고 phpmyadmin으로 결과 보고 있는데 삭제만 안되어서요 ;; 무엇이 문제일까요

  • php
  • Laravel
newnew1234 댓글 1 좋아요 0 조회수 320

GetText()사용법

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

GetText 사용법이 감이 잘 안오네요 while과 state없이 GetText()를 실행하면 텍스트 출력이 안되네요.. 파이썬에서 정확한 문법 정의가 어떻게 되는지요?

  • python
  • 한컴오피스
schnabel 댓글 2 좋아요 1 조회수 2029

수업 자료에 오류가 있는것 같습니다 ㅠ

해결됨

한국인이 좋아하는 속도로 때려넣는 파이썬

문서 정리 자동화 소프트웨어 만들기 압축 파일에 직원 정보라는 파일이 들어있지 않네요 ㅠ

  • python
eric040928 댓글 2 좋아요 0 조회수 612

readmore 클릭시 쿼리내용 받아오는게 이해가 안되요

해결됨

PHP 7+ 프로그래밍

ajax 방식으로 fetch 통해 page값을 넘겨 Domparser 사용해서 html을 새로 그린다는건 알겠는데 get방법을 사용한 이유가 있나요? 왜 li태그 안에내용만 쿼리내용이 업데이트되어 그려질수 있는지 모르겠는데 조금 더 자세한 설명 없나요? page값이 변경된 새로운 쿼리를 실행시켜 실행된 값들을 저장하는 코드가 어느부분인걸가요?

  • php
언젠가는프리 댓글 1 좋아요 0 조회수 536

서비스 프로바이더 질문

미해결

PHP 개발자의 최종 테크트리, 라라벨 강의

안녕하세요? 서비스 프로바이더만드는 중 궁금함이 생겨서 문의드립니다. 아래 사진처럼 주석을 걸고 돌려도 잘 나오는데 그럼 굳이 Aprovider를 등록 안하고 Aprovider-BaseController 연결 코드만 해도 되는게 정상인건가요? 의존성 때문에 쓰는거라고 이해 했는데 맞는건지 궁금합니다~!

  • php
  • Laravel
newnew1234 댓글 1 좋아요 0 조회수 388

안녕하세요 sail artisan storag:link 명령어 질문합니다.

미해결

PHP 개발자의 최종 테크트리, 라라벨 강의

세일 명령어를 사용해 mysql 연결 여부 확인 동영상 6분대쯤에서 이렇게 폴더가 아니라 파일이 생성되고 클릭해보니 저렇게 메시지가 떠서요 그냥 제가 폴더 만들어도 될까요? 혹시 문제 생기지 않을까 해서 문의드립니다~

  • php
  • Laravel
newnew1234 댓글 2 좋아요 0 조회수 521

bitnami WAMP 서비스가 종료되었다고 합니다.

미해결

따라하면서 배우는 웹애플리케이션 만들기

아무리 검색해도 WAMP를 대체할 수 있는 건 안 나오는데 그럼 아파치, MySQL, PHP를 다 따로 설치하는 방법밖에 없을까요...?

  • HTML/CSS
  • php
marko dans 댓글 1 좋아요 0 조회수 1720

APMsetup을 활용

해결됨

워드프레스 제대로 개발하기 - 어드민 편

지금도 APMsetup을 활용해서 워드프레스 할수 있나요?

  • wordpress
  • php
황자영 댓글 1 좋아요 0 조회수 463

precision_recall_curve() 관련 질문드립니다.

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요, 좋은강의 감사합니다. precision_recall_curve() 함수를 이용해서, y값과, 예측 값을 넣어주었을때 리턴되는값이 정밀도, 재현율, thresholds 값이 반환이 되는것으로 확인했습니다. 여기서 궁금한 부분이 thresholds값의 변화는 함수에서 임의로 진행 되는것 일까요?

  • python
  • 머신러닝
  • 통계
댓글 1 좋아요 0 조회수 324

행맨 만들기에서..

미해결

실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지

행맨 만들기 프로젝트 일부 코드에서 이해가 안되는 부분이 있어 질문드립니다! while 문에서 i = 0 을 설정한 뒤에 elem 값이 char 의 input 값과 같으면 그 값이 lst에서 치환되는 것이라고 설명해주셨는데 lst[i] 는 lst 내에서 i+1 번째 값을 의미하는 것이 아닌가요?? 아니면 i 는 그냥 미지수의 의미로 설정한 변수로 생각하면 되나요? 비슷한 질문으로 i += 1 이라는 코드를 추가한 이유가 무엇인가요? 저 코드를 빼고 작동시켜보니 이전에 맞췄던 철자가 저장되지 않고 첫 단어에만 값이 입력되는 걸 보니 이전 값들을 차곡차곡 쌓는 느낌인가요..? 너무 초보적인 질문이라 죄송합니다.. 아무리 고민하고 찾아봐도 쉽게 답이 나오지 않아 질문드립니다..

  • python
  • 알고리즘
logic 댓글 1 좋아요 1 조회수 670

'is' 와 '==' 언제 사용하나요?

미해결

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

'is'와 '==' 차이점은 어느 정도 이해되는데, 각각을 언제 사용해야 하는지는 잘 모르겠습니다. 검색을 해보면 주로 '==' 사용하고 None 과 비교할 때 'is'를 사용한다고 하는데 실제로 이렇게 사용하나요? z = 'None' a = None print(f'z is None : {z is None}') print(f'z == None : {z == "None"}') print(f'a is None : {a is None}') print(f'a == None : {a == "None"}') z is None : False z == None : True a is None : True a == None : False

  • python
Jerry 댓글 1 좋아요 0 조회수 473

강의에 나오는 문법이 적용되지 않습니다

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

MongooseError: Model.prototype.save() no longer accepts a callback 이 오류가 떠서 확인해보니 Mongoose6부터 callback 문법이 사용되지 않는다고 합니다 버전을 바꾸는 것은 시도 하지 않았고 .then .catch or async await 로 바꾸고 싶은데 수 시간 시도해보다가 안되서 글 남깁니다. callback 구문을 보고 .then .catch or async await 이 방식으로 바꾸는 법을 알고 싶습니다. 이 부분에서만 에러가 발생하는지는 모르겠으나 stack Overflow에 적어봤는데 역시 답을 얻을 수 없더라구요 app.post("/login", (req, res) => { User.findOne({ email: req.body.email }, (err, user) => { if (!user) { return res.json({ loginSuccess: false, message: "제공된 이메일에 해당하는 유저가 없습니다.", }); } user.comparePassword(req.body.password, (err, isMatch) => { if (!isMatch) return res.json({ loginSuccess: false, message: "비밀번호가 틀렸습니다." }); user.generateToken((err, user) => { if (err) return res.status(400).send(err); res.cookie("x-auth", user.token).status(200).json({ loginSuccess: true, userId: user._id }); }); }); }); });

  • react
  • node.js
exwhite 댓글 2 좋아요 0 조회수 4277

$_GET과 $_POST를 구별하여야한다고 하는데 이건 왜 $_GET입니까 콜백이라서 그런가요? 왜콜백은 그래도 되나요?

미해결

PHP 7+ 프로그래밍

function routes($routes) { foreach ($routes as [ $path, $method, $callbackString ]) { [ $file, $callback ] = explode('.', $callbackString); if (match($path, $method)) { require_once dirname(__DIR__, 2) . "/app/controllers/{$file}.php"; call_user_func($callback, ...array_values($_GET)); return true; } } return false; }

  • php
이대원 댓글 1 좋아요 0 조회수 501

챗지피티 때문에 결제했는데...

해결됨

ChatGPT 100% 활용하여 배우는 파이썬 기초 A to Z

ChatGPT와 함께 파이썬 시작하기 (변수, 정수) 편 아직 안올라 온건가요?

  • python
  • 알고리즘
sonyyjj 댓글 2 좋아요 0 조회수 1543

[파이썬 Print 사용법(1-4) - New 2023] NameError

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

파이썬 Print 사용법(1-4) - New 2023 강의에서 print로 출력하려고 하는데 자꾸 아래와 같은 오류가 떠요... 입력 값: 출력값: >>> print(f'm : {m:,}') Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'm' is not defined Python Version : 3.11.2 64-bit

  • python
Ilyeop Kang 댓글 1 좋아요 0 조회수 361

인기 태그

인프런 TOP Writers

주간 인기글