【问题标题】:Configuring socket.io for node.js application为 node.js 应用程序配置 socket.io
【发布时间】:2017-11-09 22:04:33
【问题描述】:

我有几个关于为我的 node.js 应用程序配置 socket.io 的问题。

  1. 当需要var socket = require('socket.io')( /* HERE */ )时,是否需要输入我的服务器监听/* HERE */所在的端口?

  2. 在上面一行的正下方,我有另一个 require 函数,用于一个包含一些常量和一个函数的 .js 文件(见下文)。当我尝试在该文件中引用“套接字”时,它说它是未定义的。但既然这条线低于上面看到的 socket.io 中间件的 require 线,为什么它会说 'undefined'?

    const numbers = '1234'
    function asd(req,res,next) {
      socket.emit('a')
    }
    
    module.exports = {
      asd
    }
    
  3. 为了配置客户端socket.io,我添加了这一行:

    var socket = io.connect('https://mydomain')
    

    我需要说“mydomain:port”还是“mydomain”就够了?

【问题讨论】:

  • 你能把你的整个代码贴出来吗?
  • 发布它是为了什么?
  • post it for what? ??你确实意识到你的代码是调试所必需的,对吧?
  • 您需要发布您的代码,以便我们一起找出问题所在以及原因。这是一个 programming 相关的帮助站点,因此我们需要代码。如果您发布代码,而不是发布解释,您将获得所需的帮助。
  • 贴出代码。

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


【解决方案1】:

这就是你使用 socket.io 的方式

var http = require('http');
var express = require('express');
var path = require('path');

var app = http.createServer();
var io = require('socket.io')(app);

var port = 8081;


io.on('connection', function(socket){

    socket.on('event1', function (data) {
        console.log(data);
        socket.emit('event2', { msg: 'delivered' });
    });


});


app.listen(port);

回答你的第二个问题

是的,您需要指定您使用的端口

 <script src="socket.io.js"></script>

 <script>
     var socket = new io.Socket();
     socket.connect('https://mydomain:8081')

     socket.on('your_event',function() {
         console.log('your_event receivid from the server');
     });
 </script>

这里的socket会连接到8081端口

这是一个简单的服务器端代码

var http = require('http');
var io = require('socket.io');
var port = 8081;

// Start the server at port 8081
var server = http.createServer();

server.listen(port);


var socket = io.listen(server);

// example listener
socket.on('event_2', function(client){ 
    console.log('event_2 received');
});

// example emitter
socket.emit('event_1', { hello: 'world' });

【讨论】:

  • 这不是我的问题。
  • 我猜你回答了 1,但不是 2 和 3。
  • @konyv12 你安装了socket.io npm 模块吗?
  • 我有,不然很难用。
  • 端口是否需要与服务器运行的端口相同?因为我刚刚将其设置为该值,所以我收到一条错误消息“端口已在使用中”。
猜你喜欢
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
  • 1970-01-01
相关资源
最近更新 更多