该项目在具有任何指定端口的本地主机上进行测试时运行良好。但是,当我将服务器迁移到Heroku时,我收到了这个错误,因为Heroku设置了自己的端口供您使用,在这里我的代码指定了要使用的端口。我已经浏览了很多个小时,试图实现其他人使用OS.Environ[“端口”]等解决方案,但是由于我的Python新手和Twisted技能,我没有成功地让iOS应用程序在正确的端口上与Heroku服务器进行正确的通信。我的服务器代码如下:(注:我使用的是Twisted)
import os
from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor
class IphoneChat(Protocol):
def connectionMade(self):
#self.transport.write("""connected""")
self.factory.clients.append(self)
print "clients are ", self.factory.clients
def connectionLost(self, reason):
self.factory.clients.remove(self)
def dataReceived(self, data):
#print "data is ", data
a = data.split(':')
if len(a) > 1:
command = a[0]
content = a[1]
msg = ""
if command == "new":
self.name = content
msg = content
elif command == "msg":
msg = self.name + ": " + content
print msg
for c in self.factory.clients:
c.message(msg)
def message(self, message):
self.transport.write(message + '\n')
factory = Factory()
factory.protocol = IphoneChat
factory.clients = []
port = 3000
reactor.listenTCP(port, factory)
print "Iphone Chat server started on port ", port
reactor.run()
Heroku在设置中有一个部分,您可以在其中定义环境变量。
我在本地运行Django时也有类似的情况,但类似的修复可能会对您有所帮助。
在heroku dashboard中,选择您的应用程序,然后单击settings选项卡。
那么在您的Python中:
import os
ON_HEROKU = os.environ.get('ON_HEROKU')
if ON_HEROKU:
# get the heroku port
port = int(os.environ.get('PORT', 17995)) # as per OP comments default is 17995
else:
port = 3000
我不是百分之百肯定get(“port”)是否正确,我是凭空做的。
将其实现到您自己的代码中将涉及以下内容:
factory = Factory()
factory.protocol = IphoneChat
factory.clients = []
import os
ON_HEROKU = os.environ.get('ON_HEROKU')
if ON_HEROKU:
# get the heroku port
port = int(os.environ.get("PORT", 17995)) # as per OP comments default is 17995
else:
port = 3000
reactor.listenTCP(port, factory)
print "Iphone Chat server started on port %s" % port
reactor.run()
我已经创建了一个Android应用程序,我想在应用程序上显示日历,以便用户可以选择一些日期。我试着用CalendarView完成它,但结果一无所获。在calendarView中,setMinDate将默认日历视图设置为2100,我想2038年之后的日期也有一些问题。 我需要做什么才能查看我的Android应用程序与过去的日子禁用日历。但不与日历视图,厌倦了,并尝试了它的一切!)
我不清楚它们是什么,也不知道什么时候使用它们。 在这个例子中,我有一个REST客户端,我想发送一个文件(.zip文件),如果我使用其中任何一种类型,会发生什么 我猜application/octet-stream相当于application/zip,这只是为了向另一方提供有关传输数据的提示,文件以某种方式进行了编码 多部分/表单数据以某种方式破坏数据,您可以通过其特定的mime类型传递“多个数据”
问题内容: 我最近开始建立一个大型的社交网络,我以为自己的结构很好,但事实证明我建立的逻辑很差。 我将自己的观点与AngularJS(不好的主意)混合在一起,跳过了刀片扩展,但是由于我使用了很多块和侧边栏,所以这变得很痛苦。 目前,我只是使用angular处理表单验证,但实际上我的所有网站页面都需要ajax,数据提取等功能。 我在网上搜索时,发现角度视图存储在公用文件夹中,但是由于我的所有页面都将
**Hola在清单文件中的权限: android.permission.receive_boot_completed android.permission.read_external_storage android.permission.write_external_storage android.permission.get_accounts android.permission.read_ph
另外,为什么在键入Style标记的name属性时执行Ctrl+Space操作时看不到所有的r.attr元素? 请帮忙。谢了。
我使用的是IntelliJIDEA CE edition(11.0.4)的最新版本。有一件事我在任何地方都找不到,它阻碍了我对Java/Spring的进一步改进。 控制器: 类:导入com.example.demo.interfaces.ISave; 类接口: 没什么特别的,只是为了掌握Spring和Java。 在我的控制器里,当我试图使用 我收到一个阻止应用启动的错误。以下是错误: 任务应用程序