0
나는 노드 익스프레스 서버를 사용하고 Laravel을 사용하여 실시간 채팅 응용 프로그램을 만들려고했습니다. 여기 특급 반품/집을 가져갈 수 없습니다
Cannot GET /home
가 home.blade.php입니다 : 여기
는
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');
server.listen(8000);
io.on('connection', function (socket) {
console.log("client connected");
var redisClient = redis.createClient();
redisClient.subscribe('message');
redisClient.on("message", function(channel, data) {
console.log("mew message add in queue "+ data['message'] + " channel");
socket.emit(channel, data);
});
socket.on('disconnect', function() {
redisClient.quit();
});
});
나는 다음과 같은 오류를 참조/홈 경로에 갈 때 내가 로그인 한 후 내 server.js 코드 코드 :
@extends('layouts.app')
@section('content')
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script>
<style type="text/css">
#messages{
border: 1px solid black;
height: 300px;
margin-bottom: 8px;
overflow: scroll;
padding: 5px;
}
</style>
<div class="container spark-screen">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Chat Message Module</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-8" >
<div id="messages" ></div>
</div>
<div class="col-lg-8" >
<form action="sendmessage" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}" >
<input type="hidden" name="user" value="{{ Auth::user()->name }}" >
<textarea class="form-control msg"></textarea>
<br/>
<input type="button" value="Send" class="btn btn-success send-msg">
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
var socket = io.connect('http://localhost:8000');
socket.on('message', function (data) {
data = jQuery.parseJSON(data);
console.log(data.user);
$("#messages").append("<strong>"+data.user+":</strong><p>"+data.message+"</p>");
});
$(".send-msg").click(function(e){
e.preventDefault();
var token = $("input[name='_token']").val();
var user = $("input[name='user']").val();
var msg = $(".msg").val();
if(msg != ''){
$.ajax({
type: "POST",
url: '{!! URL::to("sendmessage") !!}',
dataType: "json",
data: {'_token':token,'message':msg,'user':user},
success:function(data){
console.log(data);
$(".msg").val('');
}
});
}else{
alert("Please Add Message.");
}
})
</script>
@endsection
저는 8000 포트에서 프로젝트를 시작했습니다. 어떤 사람이 여기에 오류가 있는지 알아낼 수 있습니까?
에 아래의 경로를 추가 응용 프로그램에 add a route 필요 그리고 'app.get ('/ home ', (req, res) => {'하지만'ReferenceError : socket is not defined '와 같은 또 다른 오류가 발생했습니다.) – Hola
@Hola 대답에 경로 정의를 추가한다고합니다. – peteb