所以我有这个非常基本的 socket.io 设置,您可能已经看过一千次了。
\n\n请注意,这里的文件是通过 apache 提供的。
\n\n服务器(app.js)
\n\nvar io = require(\'socket.io\').listen(8080);\n\nio.sockets.on(\'connection\', function(socket){ \n socket.emit(\'server ready\', {msg: \'hi\'}) ;\n\n socket.on(\'random event\', function(data) {\n console.log(\'received\');\n })\n}); \nRun Code Online (Sandbox Code Playgroud)\n\n和客户
\n\n$(document).ready(function() {\n var socket = io.connect(\'http://127.0.0.1:8080/projectname/server/\');\n\n socket.on(\'server ready\', function(data){ \n console.log(\'server ready!\'); \n });\n\n socket.emit(\'random event\', {hurr: \'durr\'});\n});\nRun Code Online (Sandbox Code Playgroud)\n\n然而,我得到的唯一输出是
\n\n debug - websocket writing 5:::{"name":"server ready","args":[{"msg":"hi"}]}\nRun Code Online (Sandbox Code Playgroud)\n\n在节点控制台中,而在客户端控制台中没有任何内容。这是错误的。
\n\n我已经尝试了 socket.io 网站上的基本示例,它显示了完全相同的行为。它将发出的数据记录在节点控制台中,但似乎没有发生任何其他事情。
\n\n编辑:经过进一步调查,在 Firefox 中访问该站点会在节点控制台中创建不同的输出:
\n\ninfo - handshake authorized 178702677759276313\n debug - setting request …Run Code Online (Sandbox Code Playgroud) 考虑以下模式,其中橙色节点为 类型Person,棕色节点为 类型Movie。(这是来自 Neo4j 附带的“电影”数据集)。
我试图编写的查询如下:
\n\n\n\n\n查找所有审阅者对,一对一地查找,然后返回两位审阅者的姓名\n。如果他们都评论了同一部电影,\n 也返回电影的标题。限制查询,使两位审稿人姓名的首字母为 \xe2\x80\x99J\xe2\x80\x99
\n
现在,考虑以下 CYPHER 查询:
\n\nMATCH (a:Person)-[:REVIEWED]->(:Movie),\n (b:Person)-[:REVIEWED]->(:Movie),\n (a:Person)-[:FOLLOWS]->(b:Person)\nOPTIONAL MATCH (a:Person)-[:REVIEWED]->(m:Movie)<-[:REVIEWED]-(b:Person)\n WHERE a.name STARTS WITH \'J\'\n AND b.name STARTS WITH \'J\'\nRETURN DISTINCT a.name, b.name, m.title\nRun Code Online (Sandbox Code Playgroud)\n\n这将返回以下(不正确)结果:
\n\n\n\n为什么?
\n\n到目前为止我收集到的内容:
\n\nWHERE于 ( OPTIONAL)MATCH 于其前面WHERE考虑约束条件寻找匹配时而不是事后OPTIONAL MATCH不完全适用时,null将用于图案的缺失部分我仍然不明白,为什么“Angela Scope”出现在结果中。无论如何,如果谓词应该禁止它出现。
\n\n