Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 快速返回无法到达/回家_Php_Node.js_Laravel_Swagger Node Express - Fatal编程技术网

Php 快速返回无法到达/回家

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

我正试图为我使用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('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相关的代码,我只是说在答案中添加路由定义。