0
私はノードエクスプレスサーバーを使って、Laravelを使ってリアルタイムチャットアプリケーションを作ろうとしていました。ここでエクスプレスが返す/家に帰ることができない
私は自宅のルート/に行くとき、私は次のエラーを参照してくださいにログインした後、私のserver.jsコードは
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();
});
});
次のとおりです。ここで
Cannot GET /home
はhome.blade.phpですコード:
@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に必要{ReferenceError:ソケットが定義されていないなどのエラーが発生しました} – Hola
@Holaソケット関連のコードを削除したことはありません。答えに経路定義を追加すると言いました。 – peteb