nodejs socket.io 无法连接到服务器?

2023-11-21

我整个下午都在盯着node.js 和socket.io 示例,我正在尝试拼凑一个简单的页面,它会告诉我有多少用户连接到了服务器。

我已阅读以下文档http://socket.io/以及这里的一些教程/问题准确地概述了我正在尝试做的事情。我也发现了创建简单的 Node js 服务器和客户端这对我没有帮助。

版本信息:

Node.js - 0.6.15
表达 - 3.0.0alpha1
socket.io - 0.9.5(socket.io-client 是相同版本,但是找不到资源...请参阅评论)
ejs-0.7.1

这是我的服务器代码:

var express = require('express'),
    config = {
        port: 4000,
        hostname: 'localhost'
    };

var server = module.exports = express.createServer();
    /* server configuration */
    server.use(express.cookieParser('keyboard unicorn'));
    server.use(express.bodyParser());
    server.use(express.methodOverride());
    server.use(express.session({ secret: 'keyboard unicorn' }));
    server.engine('.html', require('ejs').__express);
    server.set('views', __dirname + '/lib/views');
    server.set('view options', { layout: false });
    server.set('view engine', 'html');
    server.use(server.router);
    server.use('/', express.static(__dirname + '/lib/assets'));

var io = require('socket.io').listen(server);

var connections = { 'length': 0 };

io.sockets.on('connection', function(socket) {
    socket.__fd = socket.fd;
    connections[socket.__fd]=socket.remoteAddress;
    ++connections.length;
    console.log('user connected! There are a total of ' + connections.length + ' users online.');
    return socket.on('disconnect',function(){
        delete conns[socket.__fd];
        --connections.length;
        console.log('user disconnected! There are a total of ' + connections.length + ' users remaining online.');
    });
});

server.get('/', function( req, res ) {
    res.render('index', {
        'page_title': 'sample application',
        'number_of_connections': connections.length
    });
});

server.listen(config.port, config.hostname);

这是我的客户端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title><%= page_title %></title>
</head>
<body>
<div>There is a total of <%= number_of_connections %> user(s) connected.</div>
<script src="http://cdn.socket.io/stable/socket.io.js"></script>
<script type="text/javascript">
var socket = new io.Socket('localhost',{'port':4000});
socket.connect();
socket.on('connect', function() {
    console.log('connected');
});
</script>
</body>
</html>

这是我运行服务器并与客户端连接时发生的情况。

$ node server.js
   info  - socket.io started

然后,当我在网络浏览器上导航到 localhost:4000 时,我会看到带有“0”(连接数)的页面。另外,我在服务器终端中看不到任何内容(on.('connection' 从未被命中)。

在客户端上,一两秒后,我开始出现大量错误(如果我让控制台打开几秒钟,页面就会崩溃),请参见下图:

enter image description here

请提供有关从哪里开始调试的任何帮助,我们将不胜感激!我只想启动并运行这个基本示例,以便我可以开始使用/理解 Nodejs 和 socket.io!


问题是因为 Express 现在是一个函数。

您需要执行以下操作:

var express = require('express');
var app = express();
var server = app.listen(3000);

var io = require('socket.io').listen(server);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nodejs socket.io 无法连接到服务器? 的相关文章

随机推荐

  • 无法访问关闭的流

    我正在尝试使用缓存应用程序块缓存一些图像 这些图像需要很长时间才能渲染 BitmapSource bitmapSource some bitmap source already created cache Caching Applicati
  • Pandas DataFrame 通过迭代进行切片

    我想对具有多个切片索引的切片 DataFrame 执行一些操作 模式是 df iloc 0 24 df iloc 24 48 df iloc 48 72 等 按照步骤 24 进行操作 我如何迭代它而不需要每次都手动设置它 更像 df ilo
  • HTML5 自定义数据属性在 IE 6 中“有效”吗?

    自定义数据属性 http dev w3 org html5 spec Overview html embedding custom non visible data 当我说 工作 时 我的意思是 如果我有这样的 HTML div 将执行以下
  • 可以同时使用AVCaptureVideoDataOutput和AVCaptureMovieFileOutput吗?

    我想用我的代码同时录制视频和抓取帧 我在用AVCaptureVideoDataOutput用于抓取框架和AVCaptureMovieFileOutput用于视频录制 但在同时工作但单独工作时无法工作并收到错误代码 12780 我搜索了这个问
  • 当新的视图控制器被推送时,如何通过画外音读出标题?

    在设置应用程序中 如果我双击 常规 行 它推动通用视图控制器 然后它说 一般的 当前视图控制器的名称 Then 设置 后退按钮 所选项目的名称 但是在我的应用程序中带有自定义self navigaitonItem titleView它只说
  • 是否可以使用 Doxygen、Sandcastle 或其他文档生成器来记录 XML?

    我目前正在使用 Sandcastle Doxygen 和 JavaDoc 为我编写的代码生成文档 是否可以使用这些包来记录 XML 模式 如果没有 是否有任何 最好是免费的 软件包可以做到这一点 我可以自己编写文档作为 Doxygen 或
  • 下拉列表所选项目文本始终返回第一个项目文本

    我正在使用此代码从数据库填充下拉列表 public void fillcountry BL obj new BL DataSet ds obj dss select from Country drplistcountry DataSourc
  • 如何在DataGridViewComboBoxColumn中设置SelectedIndex?

    我正在使用 datagridview 因为我正在使用 datagridviewcomboboxcolumn 组合框列正在显示文本 但问题是我想默认选择组合框列的第一项 我该怎么做 DataGridViewComboBoxColumn dgv
  • android 放大后如何画圆

    我正在使用图像视图并使用layerDrawable 绘制覆盖图像 我使用了两个位图 original 和 myBitmap 缩放后 我无法在正确的位置绘制圆圈 它是在不同的位置绘制的 这是我正在使用的代码 ImageView view Im
  • 为什么Hibernate无法解析STRING?

    我刚刚下载了新版本的 Hibernate 4 0 1 最终版本 很奇怪的是 当我输入以下代码时 Hibernate STRING Eclipse IDE 显示 STRING 关键字错误 我确信我的构建路径中有 hibernate jar 并
  • 分析图像的颜色

    我剪掉了部分图像 并通过 12 个轨迹栏定义了 2 个颜色范围 H S L 我还有一个 精度 速度 滑块 范围从 1 到 10 我需要分析图像有多少像素属于每个指定的颜色范围 根据精度 速度滑块 我跳过一些行 像素 它工作得很好 但太慢了
  • PHP 中的 == 运算符具有传递性吗?

    在 JavaScript 中 运算符不一定是传递的 js gt 0 0 true js gt 0 true js gt 0 false PHP 中也是这样吗 你能给个例子吗 No the 运算符不具有传递性 完全相同的场景在 PHP 中给出
  • 将字符串拆分为基于单词长度的列表 C#

    我有一串用空格分隔的单词 如何根据单词长度将字符串拆分为单词列表 Example input aa aaa aaaa bb bbb bbbb cc ccc cccc cccc bbb bb aa output List 1 aa bb cc
  • 为操作编写基于 Python 的自定义梯度函数? (没有 C++ 实现)

    我正在尝试为 my op 编写一个自定义梯度函数 为了示例的目的 该函数仅包含对 tf identity 的调用 理想情况下 它可以是任何图形 import tensorflow as tf from tensorflow python f
  • 如何使用 R 允许用户进行多个输入?

    例如 如果我需要用户指定矩阵的行数和列数 提示 行数 用户输入 数字 我需要 R 等待 输入 然后将 一个数字 保存到变量v1中 下一个 提示 列数 用户输入 另一个号码 同时将 另一个数字 保存到变量v2中 最后 我将有两个变量 v1 v
  • DENSE_RANK 根据特定顺序

    您好 我有一个数据表 我想根据排序的日期顺序输出从第一组名称开始的名称的密集排名 例如 DROP TABLE MyTable SELECT INTO MyTable FROM VALUES 2015 12 23 ccc 2015 12 21
  • 抑制 Java 中已弃用的导入警告

    在 Java 中 如果导入已弃用的类 import SomeDeprecatedClass 您会收到此警告 The type SomeDeprecatedClass is deprecated 有没有办法抑制这个警告 为了避免警告 做not
  • 如何在express Node js中获取删除请求的参数

    我对nodejs比较陌生 如何获取Delete请求传递的value参数 我正在使用节点express js 感谢advs 您可以使用 req body 来获取您发送的值 eg router delete test function req
  • HTML Canvas - 圆圈周围的虚线描边

    我确实知道在画布上渲染点划线没有原生支持 但我已经看到人们能够为此提供支持的聪明方法 我想知道是否有任何方法可以翻译它以允许在形状 特别是圆形 周围渲染点状笔划 最简单的方法使用context setLineDash ctx setLine
  • nodejs socket.io 无法连接到服务器?

    我整个下午都在盯着node js 和socket io 示例 我正在尝试拼凑一个简单的页面 它会告诉我有多少用户连接到了服务器 我已阅读以下文档http socket io 以及这里的一些教程 问题准确地概述了我正在尝试做的事情 我也发现了