Php 快速返回无法到达/回家
我正试图为我使用node express server和redis与Laravel的应用程序制作实时聊天应用程序 这是我的server.js代码Php 快速返回无法到达/回家,php,node.js,laravel,swagger-node-express,Php,Node.js,Laravel,Swagger Node Express,我正试图为我使用node express server和redis与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('conne
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
@extends('layouts.app'))
@节(“内容”)
#信息{
边框:1px纯黑;
高度:300px;
边缘底部:8px;
溢出:滚动;
填充物:5px;
}
聊天信息模块
var socket=io.connect('http://localhost:8000');
socket.on('message',函数(数据){
data=jQuery.parseJSON(数据);
console.log(data.user);
$(“#消息”)。追加(“”+data.user+”:“+data.message+””);
});
$(“.send msg”)。单击(函数(e){
e、 预防默认值();
var-token=$(“输入[name=''u-token']”)val();
var user=$(“输入[name='user']”)val();
var msg=$(“.msg”).val();
如果(消息!=''){
$.ajax({
类型:“POST”,
url:“{!!url::to(“sendmessage”)!!}”,
数据类型:“json”,
数据:{u令牌]:令牌,'message':msg,'user':user},
成功:功能(数据){
控制台日志(数据);
$(“.msg”).val(“”);
}
});
}否则{
警告(“请添加消息”);
}
})
@端部
我在8000端口开始了我的项目。有人能帮我找出这里的错误吗?您的express应用程序中没有路线
/home
。您需要访问应用程序,以便它知道如何处理所有到/home
的GET
请求
将下面的路由添加到server.js
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');
// Handle GET requests to /home
app.get('/home', (req, res) => {
// handle request, respond accordingly
});
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();
});
});
我删除了('connection',function(socket)上的
io.on('connection',function(socket)
,并替换为app.get('/home',(req,res)=>{
),但我得到了另一个错误,如ReferenceError:socket未定义
@Hola我从未说过删除与socket相关的代码,我只是说在答案中添加路由定义。