node express4.0+socket.io整合 访问不到 socket.io.js问题

server.js 代码

var express=require("express"),
    pipe=require("./pipe.js"),
    app=express(),
    http=require(‘http‘).createServer(app)
    sio=require(‘socket.io‘).listen(http);
// do.......
sio.on(‘connection‘,function(socket){
   console.log(‘connection‘);
   socket.on(‘msg‘,function(a){
        console.log(a);
        sio.emit(‘msg‘,‘你妹妹‘);
   });
});
app.listen(7777,function(){
    console.log("app started port is 7777");
});

执行 node server.js 运行后

在浏览器上访问 /socket.io/socket.io.js  为404

折腾了一个小时 终于解决了

将app.listen改成http.listen就好了

var express=require("express"),
    pipe=require("./pipe.js"),
    app=express(),
    http=require(‘http‘).createServer(app)
    sio=require(‘socket.io‘).listen(http);
//js合并
pipe(app);
//购物车
require("./cart.js")(app);
app.engine("html",require("./lib/tpl-node.js"));
//require(‘./test/websocket.js‘)(app);
app.gome={
   static:"E:\\workspaces\\dev\\Storefront\\storedocroot.war",
   jsserver:"http://localhost:7777",

};
app.use(express.static(app.gome.static));
app.use(express.static(‘./test‘));
app.get("/",function(req,res){
    res.send("index").end();
});
sio.on(‘connection‘,function(socket){
   console.log(‘connection‘);
   socket.on(‘msg‘,function(a){
        console.log(a);
        sio.emit(‘msg‘,‘你妹妹‘);
   });
});
http.listen(7777,function(){
    console.log("app started port is 7777");
});

下面是一个完整的 server 和client js

server.js

var express=require("express"),
    pipe=require("./pipe.js"),
    app=express(),
    http=require(‘http‘).createServer(app)
    sio=require(‘socket.io‘).listen(http);
//js合并
pipe(app);
//购物车
require("./cart.js")(app);
app.engine("html",require("./lib/tpl-node.js"));
//require(‘./test/websocket.js‘)(app);
app.gome={
   static:"E:\\workspaces\\dev\\Storefront\\storedocroot.war",
   jsserver:"http://localhost:7777",

};
app.use(express.static(app.gome.static));
app.use(express.static(‘./test‘));
app.get("/",function(req,res){
    res.send("index").end();
});
sio.of(‘/test‘).on(‘connection‘,function(socket){
   console.log(‘connection‘);
   socket.on(‘msg‘,function(a){
        console.log(a);
        socket.emit(‘msg‘,‘你妹妹‘);
   });
});
http.listen(7777,function(){
    console.log("app started port is 7777");
});

client.js

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script src="/socket.io/socket.io.js"></script>
    <script>
        socket = io.connect(‘ws://localhost:7777/test‘);
        socket.emit(‘msg‘,{hello:‘nimie‘});
        socket.on(‘msg‘,function(a){
           alert(a);
        });
    </script>
</body>
</html>
时间: 2024-08-05 06:39:06

node express4.0+socket.io整合 访问不到 socket.io.js问题的相关文章

&lt;转&gt;如何利用socket进行HTTP访问

原文:<转>如何利用socket进行HTTP访问 如何利用socket进行HTTP访问 平常我们要访问某个URL一般都是通过浏览器进行:提交一个URL请求后,浏览器将请求发向目标服务器或者代理服务器,目标服务器或者代理服务器返回我们所需要的数据,浏览器接收到这些数据后保存成文件并进行显示. 下面我们看看如何自己利用winsock2.h中的接口来实现这个功能?为了简化问题,作以下假设: 通过代理服务器进行HTTP访问,这样就省去了对URL进行DNS解析的步骤,假设代理服务器的地址为:192.16

nodejs+express4.0+mongodb安装方法 for Linux, Mac

废话不多说 1:下载nodejs包 下载地址如下:http://www.nodejs.org/download/ 下载source code版本需要解压后到其目录执行./configure,然后make && make install; 而binaries的tar.gz解压后即可. 2:下载mongodb 下载地址如下:http://www.mongodb.org/downloads 而binaries的tar.gz解压后即可. 3:配置环境变量 cd ~:此目录下有个.bash_prof

SpringBoot2.0+Shiro+JWT 整合

SpringBoot2.0+Shiro+JWT 整合 JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息. 我们利用一定的编码生成 Token,并在 Token 中加入一些非敏感信息,将其传递. 安装环境 开发工具:STS Maven版本:apache-maven-3.5.2 java jdk 1.8 MySQL版本:5.7 系统:Windows10 一.新建Maven项目 配置Maven项目的pom.xml文件 <pr

socket.io与sticky-session, 多个socket.io实例带来的问题

websocket的出现使得从服务器向浏览器推送数据更加容易.但是低版本的浏览器不支持websocket,这时socket.io出现了. 使用socket.io的应用在支持websocket的浏览器运行的时候使用websocket,而在低版本的浏览器中则使用传统的方式与服务器交互(例如long-polling及其他的方式). long-polling的应用实现方式是这样的,客户端向服务器端发起请求,服务器端不会马上返回,而是保持这个连接直到服务器需要推送信息给客户端时,才返回给客户端数据.客户端

项目部署到tomcat6.0启动成功后访问页面报500错误解决方法

如题:项目部署到tomcat6.0启动成功后访问页面报500错误解决方法,很奇葩,启动的时候没有任何问题,但输入访问地址后报500,去年国庆放假前夕,为这个问题伤神了半天最后解决了,今天又碰到了,乍一看摸不着头,后面仔细回想了下,迅速解决了问题. 原因:项目里面的jar和tomcat里面lib里面的jar重复了. 解决方法: 1.要么更换tomcat7或之后的版本,之后的版本就不会出现这个问题. 2.去部署之后的tomcat的webapps\项目名\WEB-INF\lib 里面删掉jsp-api

启动odoo-10.0成功,但是访问时出错

启动odoo-10.0显示成功 2017-01-05 06:49:48,211 532 INFO ? odoo: Odoo version 10.02017-01-05 06:49:48,211 532 INFO ? odoo: Using configuration file at C:\odoo-10.0\debian\odoo.conf2017-01-05 06:49:48,211 532 INFO ? odoo: addons paths: [u'C:\\Users\\hello\\Ap

编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/....dll”--“拒绝访问。

错误如下: “/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/d553c2e4/701310ee /App_Web_default.aspx.cdcab7d2.seiozvdt.dll”--“拒绝访问.

IIS6.0的配置以及访问局域网

这几天由于要上交开放实验的作业,于是晚上开始研究如何配置IIS服务器以及局域网内的访问. 其实IIS服务器的原理和apache服务器原理的配置大致相同.只不过IIS配置完全是在windows窗口下完成的. 接下来介绍如何启动你的IIS服务器,windows系统一般是自带IIS服务器的,但是晚上用同学的win7家庭版发现是没有IIS服务器的,所以建议那些是家庭版的同学要么重装电脑,要么下载安装IIS服务器.我现在是用win8系统给大家具体讲解. 1.IIS配置 首先打开控制面板->程序->程序和

C# Socket连接 无法访问已释放的对象

在进行Socket长连接时,若服务器或客户端出现异常时,另外一端对Socket对话进行操作时,程序会出现无法访问已释放的对象的问题.例如客户端出现问题主动断开Socket时,当服务器操作Socket时,比如主动断开Socket会话,那么程序会出现“无法方位已释放的对象”,是由于客户端的原因导致服务器和客户端的Socket已经不存在或连接已经断开,即Socket已经释放,服务器再操作服务器和客户端的Socket肯定会报错,因此在服务器或客户端一侧操作Socket时,必须首先判断Socket是否存在