Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Socket.io:";无法读取属性';发射';“未定义”的定义;_Javascript_Jquery_Node.js_Sockets_Socket.io - Fatal编程技术网

Javascript Socket.io:";无法读取属性';发射';“未定义”的定义;

Javascript Socket.io:";无法读取属性';发射';“未定义”的定义;,javascript,jquery,node.js,sockets,socket.io,Javascript,Jquery,Node.js,Sockets,Socket.io,因此,我目前正在使用socket.io开发我的网站 今天,当我实现套接字时,我遇到了一个很好的小错误“无法读取未定义的属性'emit'” 我找不到我代码中的错误,所以我希望你们能帮助我 App.js: var socket = require( 'socket.io' ); var express = require('express'); var app = express(); var server = require('http').createServer(app); var

因此,我目前正在使用socket.io开发我的网站

今天,当我实现套接字时,我遇到了一个很好的小错误“无法读取未定义的属性'emit'” 我找不到我代码中的错误,所以我希望你们能帮助我

App.js:

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

server.listen(port, function () {
  console.log('Listening at port %d', port);
});

io.sockets.on('connection', function (socket) {
    console.log('User connected');

    socket.on('create_socket', function(port){
    console.log(port);
});
<div>
    <p class="connected" hidden>Connected port : 9999</p>
    <p class="connect_error" hidden><strong>Can not connect to socket on port 9999</strong></p>
</div>

<script>
    var socket = io.connect("http://localhost:9999");

    // If connection can not be established
    socket.on('connect_error', function(socket) {
        $('.connected').hide();
        $('.connect_error').show();
    });

    // Connection established
    socket.on('connect', function(socket) {
        $('.connect_error').hide();
        $('.connected').show();
       // socket.on('create_socket', null, <?= $port; ?> );
       socket.emit('create_socket', '<?= $port; ?>');
    });
</script>
客户端:

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

server.listen(port, function () {
  console.log('Listening at port %d', port);
});

io.sockets.on('connection', function (socket) {
    console.log('User connected');

    socket.on('create_socket', function(port){
    console.log(port);
});
<div>
    <p class="connected" hidden>Connected port : 9999</p>
    <p class="connect_error" hidden><strong>Can not connect to socket on port 9999</strong></p>
</div>

<script>
    var socket = io.connect("http://localhost:9999");

    // If connection can not be established
    socket.on('connect_error', function(socket) {
        $('.connected').hide();
        $('.connect_error').show();
    });

    // Connection established
    socket.on('connect', function(socket) {
        $('.connect_error').hide();
        $('.connected').show();
       // socket.on('create_socket', null, <?= $port; ?> );
       socket.emit('create_socket', '<?= $port; ?>');
    });
</script>

连接端口:9999

无法连接到端口9999上的套接字

变量套接字=io.connect(“http://localhost:9999"); //如果无法建立连接 socket.on('connect_error',函数(socket){ $('.connected').hide(); $('.connect_error').show(); }); //建立连接 socket.on('connect',函数(socket){ $('.connect_error').hide(); $('.connected').show(); //on('create_socket',null,); emit('create_socket',''); });
顺便说一句,所有的socket.io/jquery/。。。即使代码中没有显示包含,也会正确执行


提前感谢

客户代码:

改变

// Connection established
    socket.on('connect', function(socket) {

最终:

// Connection established
    socket.on('connect', function(data) {
        $('.connect_error').hide();
        $('.connected').show();
       console.log(data);
       socket.emit('create_socket', '<?= $port; ?>');
    });
//已建立连接
socket.on('connect',函数(数据){
$('.connect_error').hide();
$('.connected').show();
控制台日志(数据);
emit('create_socket','');
});

在此之前,您需要覆盖套接字对象。

就像一个符咒!谢谢,先生