zsxsoft/danmu-server

在现有弹幕服务端尝试增加房间失败

Closed this issue · 6 comments

Dear zsx,

我尝试修改config.js增加了一个房间的配置如下:
"fangjian3": {
"display": "房间1",
"table": "room_fangjian3", // 数据表
"connectpassword": "666666", // 客户端连接密码
"managepassword": "666666", // 管理密码
"advancedpassword": "666666", // 高级弹幕密码
"keyword": {
"block":
...
}
并执行npm start命令,希望能自动增加一个房间,发现失败,导致弹幕无法使用。
以下是报错信息:
[2015-9-8 16:5:30.771] 扩展组件加载完成
[2015-9-8 16:5:31.177] 服务器于http://127.0.0.1:3006/成功创建
[2015-9-8 16:5:31.411] 数据库连接正常
[2015-9-8 16:5:31.418] 创建(default)定时器 - 4000ms
[2015-9-8 16:5:31.419] 创建(fangjian3)定时器 - 4000ms
[2015-9-8 16:5:31.419] 服务器初始化完成
[2015-9-8 16:5:31.425] Creating Table...
/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/Parser.js:82
throw err;
^
Error: Callback was already called.
at /var/www/tom/tom_danmu1/node_modules/async/lib/async.js:30:31
at /var/www/tom/tom_danmu1/node_modules/async/lib/async.js:248:21
at /var/www/tom/tom_danmu1/lib/database/index.js:5:13
at /var/www/tom/tom_danmu1/lib/database/mysql.js:56:6
at Query._callback (/var/www/tom/tom_danmu1/lib/database/mysql.js:30:6)
at Query.Sequence.end (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
at Query._handleFinalResultPacket (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/sequences/Query.js:144:8)
at Query.OkPacket (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/sequences/Query.js:78:10)
at Protocol._parsePacket (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/Protocol.js:274:23)
at Parser.write (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/Parser.js:77:12)

我观察到执行npm start以后自动创建了room_fangjian3数据表,但是弹幕无法使用。后来我把新创建的room_fangjian3表删除以后再执行npm start,弹幕服务端又重新恢复正常。

不知道是我的命令操作有误,还是服务端程序问题呢?

说错了,纠正:
我观察到执行npm start以后自动创建了room_fangjian3数据表,但是弹幕无法使用。后来我把config中增加的配置删除以后再执行npm start,弹幕服务端又重新恢复正常。

其实我并没有测试过多个房间。。回家以后修复。
另外我最近的计划是把这个项目进行前后端分离,弄分布式架构。
2015年9月8日 16:15于 phperwuhan notifications@github.com写道:Dear zsx,

我尝试修改config.js增加了一个房间的配置如下:
"fangjian3": {
"display": "房间1",
"table": "room_fangjian3", // 数据表
"connectpassword": "666666", // 客户端连接密码
"managepassword": "666666", // 管理密码
"advancedpassword": "666666", // 高级弹幕密码
"keyword": {
"block":
...
}
并执行npm start命令,希望能自动增加一个房间,发现失败,导致弹幕无法使用。
以下是报错信息:
[2015-9-8 16:5:30.771] 扩展组件加载完成
[2015-9-8 16:5:31.177] 服务器于http://127.0.0.1:3006/成功创建
[2015-9-8 16:5:31.411] 数据库连接正常
[2015-9-8 16:5:31.418] 创建(default)定时器 - 4000ms
[2015-9-8 16:5:31.419] 创建(fangjian3)定时器 - 4000ms
[2015-9-8 16:5:31.419] 服务器初始化完成
[2015-9-8 16:5:31.425] Creating Table...
/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/Parser.js:82
throw err;
^
Error: Callback was already called.
at /var/www/tom/tom_danmu1/node_modules/async/lib/async.js:30:31
at /var/www/tom/tom_danmu1/node_modules/async/lib/async.js:248:21
at /var/www/tom/tom_danmu1/lib/database/index.js:5:13
at /var/www/tom/tom_danmu1/lib/database/mysql.js:56:6
at Query._callback (/var/www/tom/tom_danmu1/lib/database/mysql.js:30:6)
at Query.Sequence.end (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
at Query._handleFinalResultPacket (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/sequences/Query.js:144:8)
at Query.OkPacket (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/sequences/Query.js:78:10)
at Protocol._parsePacket (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/Protocol.js:274:23)
at Parser.write (/var/www/tom/tom_danmu1/node_modules/mysql/lib/protocol/Parser.js:77:12)

我观察到执行npm start以后自动创建了room_fangjian3数据表,但是弹幕无法使用。后来我把新创建的room_fangjian3表删除以后再执行npm start,弹幕服务端又重新恢复正常。

不知道是我的命令操作有误,还是服务端程序问题呢?

—Reply to this email directly or view it on GitHub.

另外有的比较小的问题,你可以尝试自己修一下么
2015年9月8日 16:24于 phperwuhan notifications@github.com写道:说错了,纠正:
我观察到执行npm start以后自动创建了room_fangjian3数据表,但是弹幕无法使用。后来我把config中增加的配置删除以后再执行npm start,弹幕服务端又重新恢复正常。

—Reply to this email directly or view it on GitHub.

没玩过nodejs,不敢随便动代码 :)

基本上我这边做了比较多的测试了,客户端和服务端的问题基本都已经在issue里面都提到了,如果能够都解决了,基本就十分稳定了。

我先看看客户端的几个小问题有没有可能帮上忙的,到时贡献点代码贴到对应issue里面给你参考一下吧。

另外,你提到的修改架构的事情,会跟目前的server和client区别开另外开代码库开发吗?弄分布式架构,一下就高大上了啊 👍

因为我现在在学校,所以只能等回家后弄,大概要等周五乃至周六。
分布式架构只要服务器那边弄。打算进行前后端分离,前端负责接收新弹幕与推送弹幕到服务端,后端负责各种复杂逻辑,包括数据库、审核等。会专门开个新branch,等稳定后merge到master去。
你可以直接提Pull Request,只要代码格式化了就行。

great
明天一并测试