javascript - 套接字 - 客户端站点上不显示任何数据

标签 javascript node.js sockets

我想通过 socket.io 通过 NodeJS 将数据发送到我的客户端。

我收到的数据来自推送器。

我正在使用快速后端并像这样加载我的服务器。

#!/usr/bin/env node
var debug = require('debug')('testApp');
var app = require('../app');
var Pusher = require('pusher-client');

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function () {
    debug('Express server listening on port ' + server.address().port);
});


/**
 * return pusher data
 */

var API_KEY = 'cb65d0a7a72cd94adf1f';
var pusher = new Pusher(API_KEY, {
    encrypted: true
});

/**
 * Socket.io
 */
var io = require("socket.io").listen(server, {log: true});

io.sockets.on("connection", function (socket) {
    // This will run when a client is connected

    // This is a listener to the signal "something"
    socket.on("data", function (data) {
        var channel = pusher.subscribe("ticker.160");
        channel.bind("message", function (data) {
            console.log(data);
        });
    });

    // This is a signal emitter called "something else"
    socket.emit("something else", {hello: "Hello, you are connected"});
});

在我的客户端上,我运行以下脚本:

index.ejs

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js" />
    <script src='/javascripts/socket.js'></script>
  </head>
  <body>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %> Juhu!</p>

  </body>
</html>

我的socket.js文件:

var socket = io.connect(window.location.hostname);
socket.on('data', function(data) {
    var total = data.total;

    //print data to console
    console.log(data);

}); 

我的问题是,即使数据传入我的 Nodejs 应用程序,我的网络浏览器的控制台中也没有显示任何内容。

有什么建议我做错了什么吗?

感谢您的回复!

最佳答案

我确实相信问题出在您使用时: socket.emit("something else", {hello: "Hello, you areconnect"});

但在客户端有这个:socket.on('data', function(data) {.

当您发射时,您使用“其他” channel ,但在客户端您正在检查“数据” channel 。

因此,在客户端,您应该使用 socket.on('something else', function(data){

希望我有帮助。我在 sockets.io 上找不到太多信息,所以我不知道是否有一个名为“data”的预先存在的 channel 。如果是的话请告诉我:)

关于javascript - 套接字 - 客户端站点上不显示任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27706846/

相关文章:

javascript - 用户可以使用 javascript 或任何其他方式操作只读字段中的值吗?

javascript - 使用 javascript 在 div 中获取 iframe

Node.JS 套接字数据调用

c++ - `recv()` 会导致缓冲区溢出吗?

python - 使用 Python 套接字从 URL 获取 HTML 内容

node.js - 在Google App Engine上部署socket.io

javascript - 如何避免第二次单击文件输入按钮时清除文件对象?

php - 我创建了一个 CSS 切换器,但我只需要更改 body 类为 ="red"的元素

node.js - 无法访问本地主机:8080 with docker on windows 10

node.js - Typescript Node 表示路由器和第二个参数。 Typescript-eslint/no-misused-promises