node.js - Socket.io 未连接 (2)
问题描述
我正在使用 Laravel,我的目录结构如下:
/example.com
/server.js
/node_modules
/css
/js
/main/views/writemessage.blade.php
/main/views/socket.blade.php
/main/app/Http/Controllers/SocketController.php
我的代码server.js
是:
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
io.set('origins', '*:*');
var redis = require('redis');
var cors = require('cors');
app.use(cors());
server.listen(8890);
io.on('connection', function (socket) {
console.log("new client connected");
var redisClient = redis.createClient();
redisClient.subscribe('message');
redisClient.on("message", function(channel, message) {
console.log("mew message in queue "+ message + "channel");
socket.emit(channel, message);
});
socket.on('disconnect', function() {
console.log('Disconnected!!!');
redisClient.quit();
});
});
我的代码writemessage.blade.php
是:
@extends('_template.default')
@section('main-content')
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script>
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2" >
<div id="messages" ></div>
</div>
</div>
</div>
<script>
var socket = io.connect('https://example.com:8890', {secure: true});
socket.on('message', function (data) {
console.log('YES!!!!!!!!!!');
$( "#messages" ).append( "<p>"+data+"</p>" );
});
</script>
@endsection
我的代码socket.blade.php
是:
@extends('_template.default')
@section('main-content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Send message</div>
<form action="sendmessage" method="POST">
<input type="text" name="message" >
<input type="submit" value="send">
{{csrf_field()}}
</form>
</div>
</div>
</div>
</div>
@endsection
当我在 Windows 中时,它会返回CORS
问题,但现在当我使用 Linux 时,它不会返回该错误,但不会在控制台中返回任何内容。redis 也在运行......但是当我运行node server.js
它时,它甚至不会在控制台中打印 Connected 或 Disconnected 消息。我的问题出在哪里?是来自网址吗?我说 url 因为当我在 Firefox 中检查网络监视器时,我看到它在说The connection used to fetch this resource was not secure
. 我做错了什么吗?还是我应该做更多的事情?如何测试问题出在哪里?
顺便说一句,我的节点版本:6.14.3 和我的 npm 版本:3.10.10
谢谢
解决方案
推荐阅读
- dll - 如何将注入的DLL的远程Proc地址获取到另一个进程中
- swift - 在用户购买之前锁定游戏的特定部分
- delphi - 如何让透明图像出现在 TMenu 项目上
- smalltalk - Windows 上 Smalltalk (Pharo) 中的标准输入
- snakemake - 使用 snakemake 的 MissingOutputException 和延迟等待错误
- android - 如何在 Mac OS 上安装 ANDROID_SDK_ROOT?
- python - IndexError:列表索引超出范围。任何人都可以帮我解决这个 Python 代码吗?包括 numpy 和 pandas 的概念
- javascript - 正则表达式匹配两个单词之间的字符串,其中结束边界词是可选的
- vba - MS Access:如何通过 SQL 或 VBA 返回该表中具有“超链接”字段格式的所有表和字段名称?
- python - 处理大型数据集进行分析