【问题标题】:Socket Failed to load resource server (404 error)Socket 加载资源服务器失败(404 错误)
【发布时间】:2013-10-19 09:25:12
【问题描述】:

大家好,我使用服务器端 server.js 和客户端使用 javascript 的文件

server.js

var express = require("express");
var io = require("socket.io").listen(app);
var app = express.createServer("localhost");
app.listen(3000);


app.get('/', function (req, res) {
    res.sendfile(__dirname + '/hello.html');
});

    console.log("before");
    io.sockets.on("connection", function (socket) {
        console.log("after");
        socket.on("message send", function (data) {
            io.sockets.emit("new mesage", data);
        });
    });

在客户端使用一个 html 页面名称

hello.html

<html>
<head>
    <style>
        #chat{
        height : 500px;
        }

    </style>

</head>
<body>
    <div id="chat" > </div>
    <form id ="send message"> 
        <input id="message" type="text" ></input>
        <input type="submit"></input>
    </form>
    <script type= "javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script src="/socket.io/socket.io.js"></script>

    <script>
    jQuery(function($){
        var socket =io.connect();
        var $messageForm = $("#send message");
        var $messageBox=$("#message");
        var $chat = $("#chat");

            $messageForm.submit(function(e){
                e.preventDefault();
                socket.emit("message send" , $messageBox.val());
            });
            socket.on("new message", function(data){
                $chat.append(data + "</br>");   
            });
    });
    </script>

</body>
</html>

当我启动服务器然后它正常工作但是当我发送一个请求时它显示 错误 就像给定的打击

加载资源失败:服务器响应状态为 404 (Not Found) /socket.io/socket.io.js

Uncaught ReferenceError: jQuery is not defined

版本

socket.io:0.9.16

表达:3.4.0

感谢您的宝贵时间:)

【问题讨论】:

  • 您能说说您使用的是哪个版本的 express 和 soclet.io...?
  • 版本 socket.io = 0.9.16 扩展 3.4.0

标签: javascript jquery node.js sockets socket.io


【解决方案1】:

您需要将 socket.io 绑定到 http 服务器而不是应用程序服务器。将其更改为以下..

var express = require('express'),
    app = express(),
    http = require('http'),
    server = http.createServer(app),
    io = require('socket.io').listen(server);

更多信息请参考Express guide

编辑

纠正 Jquery 错误..

替换

jQuery(function($){

$(document).ready(function($)

【讨论】:

  • var express = require('express'), app = express(), http = require('http'), server = http.createServer(app), io = require('socket.io ').listen(服务器); server.listen(3000); app.get('/', function (req, res) { res.sendfile(__dirname + '/hello.html'); }); console.log("之前"); io.sockets.on("connection", function (socket) { console.log("after"); socket.on("message send", function (data) { io.sockets.emit("new message", data ); }); });第一个错误已解决,但第二个错误未解决 Uncaught ReferenceError: jQuery is not defined 并感谢您的帮助...
猜你喜欢
  • 2022-10-23
  • 2021-07-23
  • 1970-01-01
  • 1970-01-01
  • 2017-07-03
  • 2021-06-21
  • 2016-11-01
  • 2018-01-29
  • 2020-07-04
相关资源
最近更新 更多