我正在尝试使用js的范围从navigator.geolocation.getCurrentPosition中提取变量
var lat;
function callback (position) {
lat = position.coords.latitude;
}
navigator.geolocation.getCurrentPosition(callback,fail,{timeout:10000});
// after getCurrentPosition succeeds
alert(lat); // this alerts null
Run Code Online (Sandbox Code Playgroud)
由于范围,上面的代码无法在lat变量中存储position.coords.latitude.有没有办法做到这一点?
我在同一网络上有两台机器,分别为192.168.1.2和192.168.1.3.
192.168.1.2 = server/dev pc
192.168.1.3 =客户端/浏览器pc
所以在服务器/ dev pc上我有一个在端口82上运行的socket.io/http服务器
在客户端服务器上,我使用chrome作为浏览器
服务器正在托管一个网页
<html>
....
<script type="text/javascript" src="http://localhost:82/socket.io/socket.io.js"></script>
....
</html>
Run Code Online (Sandbox Code Playgroud)
这是socket.io客户端所需的必要资源.所以资源在我的服务器/ dev pc上加载,但不在我的客户端pc上加载.所以我尝试:
<html>
....
<script type="text/javascript" src="http://192.168.1.2:82/socket.io/socket.io.js"></script>
....
</html>
Run Code Online (Sandbox Code Playgroud)
现在它无法在任何一台电脑上运行.我知道它应该是
<script src="http://<uri:port>/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)
正如它在socket.io github上所说,但我只想在本地网络上进行测试.
我也看过了
<script type="text/javascript" src="http://cdn.socket.io/stable/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)
但我正在使用socket.io 0.8.4所以上面的版本不起作用.
那么如何在本地网络环境中获取为客户端提供的socket.io资源呢?或者你们知道一个网站服务于我可以使用的0.8.4版本的socket.io吗?
注意:没有防火墙问题.
我不是在谈论一般的聊天应用程序,而是特别关于聊天室实现.
所以在node.js/socket.io中,我想到了两种方法
为每个聊天室创建一个数组,向阵列中的所有用户广播消息
向所有用户广播所有消息,在客户端的PC上确定它们是否属于聊天室,如果是,则接受该消息.
1中的弱点是,当你扩展时,你将使用数组对象充斥服务器的内存,而我在托管上只使用大约80mb.
2中的弱点是,向所有人广播最终是昂贵的,并且充斥客户的机器不会让他们感到高兴.
我确信有更好的方法来实现聊天室,这就是为什么我要求你们帮助我.我首先在服务器端寻找性能,然后是客户端,它必须是可扩展的.
使用 Rails 4.0.0、ruby 2.0p247 和 mysql2 0.3.13 gem。MariaDB 5.5 中我的表中的一列
注意:mariadb 从 5.3 开始就支持微秒精度
`updated_at` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
Run Code Online (Sandbox Code Playgroud)
精度应该是微秒,所以我在模型文件中尝试过
before_save :set_update
def set_update
# also tried
# self.updated_at = "2013-10-03 12:35:00.123456 -700"
# self.updated_at = Time.now.strftime "%Y-%m-%d %H:%M:%S %6N"
# self.updated_at = Time.now.iso8601(6)
# doesn't work, still no microseconds
self.updated_at = Time.now.to_f
end
Run Code Online (Sandbox Code Playgroud)
但数据库里还是这样
| updated_at |
+----------------------------+
| 2013-10-03 19:35:00.000000 |
+----------------------------+
Run Code Online (Sandbox Code Playgroud)
为什么rails/activerecord不存储微秒?
使用导轨4,红宝石2.
我在rails配置中为我的cookie会话设置了30分钟的超时时间.问题是如果我去一个表单,让会话超时,然后提交表单,我得到这个ActionController::InvalidAuthenticityToken错误.
如何在rails中优雅地处理此错误?说,重定向到登录屏幕?
我想phonegap用于移动地理定位应用程序,我注意到有一些假的gps应用程序.有没有办法phonegap确定api的gps坐标是真的还是真的是真的?
示例虚假位置应用:
https://itunes.apple.com/us/app/fake-location/id431065024
https://play.google.com/store/apps/details?id=com.lexa.fakegps
假设我有一个文件:
我想要这个名字.go:
package main
func main(){
filename := some_func() // should be "i_want_this_name"
}
Run Code Online (Sandbox Code Playgroud)
go中如何获取执行代码的文件名?
我有文件:
main/
a.go
b.go
c.go
Run Code Online (Sandbox Code Playgroud)
前:
package main
import "fmt"
func init(){
fmt.Println("a")
}
func main(){}
Run Code Online (Sandbox Code Playgroud)
b.go:
package main
import "fmt"
func init(){
fmt.Println("b")
}
Run Code Online (Sandbox Code Playgroud)
c.go:
package main
import "fmt"
func init(){
fmt.Println("c")
}
Run Code Online (Sandbox Code Playgroud)
字符串输出的顺序是什么?
我正在gin用作我的http服务器,并在json中发回一个空数组作为响应:
c.JSON(http.StatusOK, []string{})
Run Code Online (Sandbox Code Playgroud)
我得到的结果json字符串是"[]\n"。换行由json Encoder对象添加,请参见此处。
使用goconvey,我可以像测试我的json
So(response.Body.String(), ShouldEqual, "[]\n")
Run Code Online (Sandbox Code Playgroud)
但是有比生成一个预期的json字符串更好的方法吗?
说我有
interface A {
apple?: number;
[key: string]: any;
}
interface B extends A {
banana?: number;
}
Run Code Online (Sandbox Code Playgroud)
我想要一个type C扩展 all fromA和 all from Bexcept [key: string]: any;。我想要一个type D继承所有 fromB除了 all from A。
我如何制作C和D打字稿?
go ×3
javascript ×2
node.js ×2
ruby ×2
socket.io ×2
activerecord ×1
android ×1
chat ×1
chatroom ×1
cordova ×1
geolocation ×1
gps ×1
html ×1
iphone ×1
json ×1
mysql ×1
navigator ×1
typescript ×1
websocket ×1